[求助] 请教一个关于在IAR下指针的问题

馨曦   2013-8-24 11:40 楼主
请教一个关于在IAR下指针的问题如下:
  int *p1,*p2,*p3;
  char temp[8];
  p1 = (int *)&temp[0];
  p2 = (int *)&temp[4];
/**调试的时候上面两句通过*/
  p3 = (int *)&temp[6];/*这一句直接卡死*/

请问朋友们这是什么情况?





回复评论 (6)

赋值的时候不至于卡死吧,顶多字节不对齐,在使用的时候出现问题。
点赞  2013-8-24 12:11

回复 沙发lcofjp 的帖子

现在就是这个情况,郁闷的
点赞  2013-8-24 15:16

回复 板凳馨曦 的帖子

不知道卡死是什么情况,可以单步汇编,不可能不执行指令了吧。
点赞  2013-8-24 15:48
int *p1,*p2,*p3;
  char temp[8];
  char str[4];


  p1 = (int *)&temp[0];
  p2 = (int *)&temp[4];


memcpy(str,&temp[6],2);
p3 = (int *)&str[0];


这样就通过了,
点赞  2013-8-24 16:57

回复 4楼lcofjp 的帖子

int *p1,*p2,*p3;
  char temp[8];
  char str[4];


  p1 = (int *)&temp[0];
  p2 = (int *)&temp[4];


memcpy(str,&temp[6],2);
p3 = (int *)&str[0];


这样就通过了,
点赞  2013-8-24 16:57
p1 = (int *)(temp+6)
就好了
点赞  2013-8-24 17:48
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复