【发布时间】:2009-10-16 18:30:05
【问题描述】:
unsigned int *pMessageLength, MessageLength;
char *pszParsePos;
...
//DATA into pszParsePos
...
printf("\nMessage Length\nb1: %d\nb2: %d\nb3: %d\nb4: %d\n",
pszParsePos[1],pszParsePos[2],pszParsePos[3],pszParsePos[4]);
pMessageLength= (unsigned int *)&pszParsePos[1];
MessageLength = *((unsigned int *)&pszParsePos[1]);
//Program Dies
输出:
消息长度 b1: 0 b2: 0 b3: 0 b4: 1我不明白为什么这会导致我的程序崩溃。有人可以解释一下,或者至少建议一种不会崩溃的替代方法吗?
感谢您的宝贵时间!
【问题讨论】:
-
你没有提到:什么操作系统,什么微处理器,当它“死”时你看到了什么错误?
-
它在嵌入式 Blackfin 处理器上的 uClinux 中运行 ansi C。当它“死”时会显示“总线错误”,但我认为这与 Blackfin 外设之一没有正确停止有关(但我肯定是错的)。
-
您的系统可能无法访问未对齐的指针。
-
只需在编辑器窗口中突出显示代码,然后单击看起来像 101010 的小按钮。
-
是的,我现在弄清楚了代码格式。谢谢。