sprintf()函数使用异常

调试STM32F103,比如如下代码:
使用springf函数,这个函数是把最后两个参数先格式化成字符串 ,输出到ERROR_STRING,如果他们合并的长度大于30会出现深情况?

char ERROR_STRING[30]
sprintf(ERROR_STRING, "\n\r+ok%s%s\r\n\r\n", pOperation, pParameter);

今天遇到了这个问题,发现会进入硬件中断错误里面,估计是边界溢出。这种情况可能出现(也可能不出现),假如你原来ERROR_STRING保存的有需要的数据,那么就会被擦除,导致出现异常。

void HardFault_Stack_Dump(unsigned int *hardfault_stack)

 

posted @ 2018-03-27 10:20  429512065  阅读(1552)  评论(0编辑  收藏  举报