欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

memset初始化为特定的值遇到的坑

程序员文章站 2024-02-22 12:03:16
...

今天在单片机STM32F407调试程序,使用memset函数将某个short数组初始化为特定值,结果发现初始化值始终不对

      

int16_t MBCOM1_MODBUS_Buffer[50];

memset(MBCOM1_MODBUS_Buffer , -255 , sizeof(short) * 50);

在KEIL下打断点追踪,结果如下:

memset初始化为特定的值遇到的坑

发现数组全部被初始化为257.

 

原因:

        不能使用memset函数将short数组初始化为特定值,只能用遍历的方式将short数组初始化为特定值。

解决方法:

        用遍历的方式将short数组初始化为特定值

	uint8_t i;

	for (i = 0 ; i < 50 ; i++)
		MBCOM1_MODBUS_Buffer[i] = -255;

在KEIL下打断点追踪,结果如下:

       memset初始化为特定的值遇到的坑

用遍历的方式将short数组初始化为特定值,最终问题解决。

相关标签: STM32F407