C新手在这里。一直在搞乱嵌入式微控制器,我注意到当我设置一个缓冲区:char buffer[100]
然后打印到它:snprintf(buffer, 20, "Just A test");
时,我的内存映射显示不仅我预期的字节被更改。
结果,意外变量似乎受到影响。我做错了什么?
编辑:好的,我拍了一下情况的截图。黑色的存储器映射刚刚启动到所有FF。然而,在sprintf打印到缓冲区之后,它会产生预期的变化以及不期望的变化(在红色框中没有预期的突出显示,在该框下面也是红色。我更关心红色框,因为它似乎覆盖了一些我的预期变化)EDIT2:似乎增加堆栈大小有助于此。我想我有一个问题的版本:sprintf corrupting arrays in IAR microcontroller