在使用 sprintf 函数时遇到的造成死机的两种原因:
1、 指针未声明内存
char *p;
sprintf(p,"%d,%d,%f",1,1,2.1);
解决方法:对指针申请内存,或定义成数组类型。
2、打印float/double 类型数据。
解决方法:修改为int类型打印。
有网友说栈空间不足造成的死机,本人测试后以上两种死机原因均为改善。
启动文件中 Heap_Size 为 0x00000200修改为0x00000C00
Heap_Size EQU 0x00000200
Stack_Size EQU 0x00000400
Heap_Size EQU 0x00000C00
对于sprintf 造成的真正死机原因有待进一步深究,也望各位网友给出解决方法!