|
本帖最后由 zxq6 于 2017-1-14 15:40 编辑
如题,
函数调用如下:
calc("9-(3*2)");
函数实现的部分代码如下:
- double calc(char *expr) {
-
- char c,*rexp,*pp,*pf;
- pp=pf=expr;
- do {
- c = *pp++;
- if (c!=' '&& c!=Tab)
- *pf++ = c;
- } while (c!='\0');
- }
复制代码
其中用到的变量定义如下:
char c,*rexp,*pp,*pf;
现在发现,do循环第一圈没有问题,第二圈,到
c = *pp++;
的时候,就出现hard fault里面去了。
百思不得其解,请有经验的大虾指导指导,谢谢!
PS:该代码在vc2012上能够很好的运行。出问题的系统为MDK,运行单片机为STM32
经过15楼的指导,最终解决了这个问题。
当然,其他楼层的指导也很有意义,不过,恕我愚钝,当时没能看懂。
反过头看了看,4楼说的才是第一个指出问题真相的,在此一并感谢。
其他的没有提到的楼层,同样感谢,并非忽略。
同时,也感谢26楼的批评,虚心接受哈。 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|