unsigned char*与unsigned char问题

violinacl 2014-08-04 08:37:56
stm32中程序:

unsigned char bfBuf[4] = {0x01,0x01,0x01,0x01};
unsigned char * dataptr;

dataptr = bfBuf;

为什么输出结果不一样?
printf("%02X",bfBuf [0]);//01
printf("%02X",dataptr[0]);//ff
...全文
557 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
violinacl 2014-08-05
  • 打赏
  • 举报
回复
引用 8 楼 angel_su 的回复:
u8_t sendbuf[5];在栈上有问题吧,函数返回就被收了...
已解决,就是这样。
violinacl 2014-08-04
  • 打赏
  • 举报
回复
引用 2 楼 shenchenman 的回复:
什么编译器?
qmdk。我正在试
707wk 2014-08-04
  • 打赏
  • 举报
回复
i编译器的问题吧
707wk 2014-08-04
  • 打赏
  • 举报
回复
i编译器的问题吧
Falleyes 2014-08-04
  • 打赏
  • 举报
回复
VS2013下运行:
mymtom 2014-08-04
  • 打赏
  • 举报
回复
这个不可能吧 /home/mymtom/src/demo$ cat demo1.c

#include <stdio.h>

int
main(int argc, char *argv[])
{
        unsigned char bfBuf[4] = {0x01,0x01,0x01,0x01};
        unsigned char * dataptr;

        dataptr = bfBuf;
        printf("%02X\n",bfBuf [0]);
        printf("%02X\n",dataptr[0]);

        return 0;
}
/home/mymtom/src/demo$ make demo1 cc demo1.c -o demo1 /home/mymtom/src/demo$ ./demo1 01 01
shenchenman 2014-08-04
  • 打赏
  • 举报
回复
什么编译器?
平头哥哥 2014-08-04
  • 打赏
  • 举报
回复

-----------------
max_min_ 2014-08-04
  • 打赏
  • 举报
回复
什么时候打印的打印的呢? 理论应该是一样的!不必纠结这里!
angel_su 2014-08-04
  • 打赏
  • 举报
回复
u8_t sendbuf[5];在栈上有问题吧,函数返回就被收了...
violinacl 2014-08-04
  • 打赏
  • 举报
回复
就好像指针s->textptr 指的不是原来的地址
violinacl 2014-08-04
  • 打赏
  • 举报
回复
.h文件

struct tcp_demo_appstate
{
	u8_t state;
	u8_t *textptr;
	int textlen;
};
typedef struct tcp_demo_appstate uip_udp_appstate_t;
uip的udp接受命令,tcp发数据。接受命令时解析命令一点问题没有,然后把返回的状态通过tcp发送给上位机。每次发送时都不是原来的数据。不知道怎么回事 .c

//解析
void DealCmd(struct tcp_demo_appstate *s)
{
	u8_t sendbuf[5];
	u8_t cmd,len,chid,paracode,para;

	/* 得到指定参数
	*/
 	cmd = ((u8_t *)uip_appdata)[0];
	len = ((u8_t *)uip_appdata)[1];
 	chid = ((u8_t *)uip_appdata)[2];
 	paracode = ((u8_t *)uip_appdata)[3];

	sendbuf[0] = cmd;
sendbuf[1] = len;
 	sendbuf[2] = chid;
 	sendbuf[3] = paracode;
s->textptr = sendbuf;
s->textlen = sizeof(sendbuf);
}
//发送
static void senddata(void)
{
	struct tcp_demo_appstate *s = (struct tcp_demo_appstate *)&uip_udp_conn->appstate;
	if (s->textlen > 0)
	{
	uip_send(s->textptr, s->textlen);
	}
}

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧