Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何将memset用于二维数组?_C_Arrays_Multidimensional Array_Memset - Fatal编程技术网

C 如何将memset用于二维数组?

C 如何将memset用于二维数组?,c,arrays,multidimensional-array,memset,C,Arrays,Multidimensional Array,Memset,我有一个双人床。数组: alarm_1_active_buffer[MAX_NUM_ALARMS][MAX_ALARM_STRING_SIZE]; 我想在填充之前清除缓冲区。 像这样: for(index=0; index<MAX_NUM_ALARMS ; index++) { memset(&alarm_1_active_buffer[index], 0, MAX_ALARM_STRING_SIZE); memset(&ala

我有一个双人床。数组:

 alarm_1_active_buffer[MAX_NUM_ALARMS][MAX_ALARM_STRING_SIZE];
我想在填充之前清除缓冲区。
像这样:

 for(index=0; index<MAX_NUM_ALARMS ; index++)
    {
        memset(&alarm_1_active_buffer[index], 0, MAX_ALARM_STRING_SIZE);
        memset(&alarm_1_active_buffer[index],string, MAX_ALARM_STRING_SIZE);
    }

for(index=0;index由于阵列放置在连续的地址空间中,您不必为2d阵列做任何特殊的操作。您只需使用
memset(报警1活动缓冲区,0,最大报警数*最大报警字符串大小*大小(报警1活动缓冲区类型));
确保
首先包括

memset(alarm_1_active_buffer, 0, sizeof(alarm_1_active_buffer));

无论数组中的元素类型如何,此方法都有效。

um..
alarm\u 1\u active\u buffer[index]=0
您可以一次清除整个数组——您不需要遍历外部数组并清除每个索引。提示:使用
sizeof
运算符时,引用变量本身,根据需要取消引用,而不是显式命名类型(例如,
sizeof**alarm\u active\u buffer
而不是
sizeof(char)
)。这可以防止在变量类型更改时出现错误,并且引用旧类型的
sizeof
实例之一不会随之更改。