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
实例之一不会随之更改。