我正在尝试将一个数组元素清零并检查其状态,这样就不会再使用它了,但是,它似乎不起作用。
int main(int argc, char const *argv[]){
char pid[10][20] = {"abc", "dec", "dsz", "dfas"};
memset(pid[1],0,sizeof(pid[1]));
for (int i=0; i<4;i++){
printf("element %d: %sn", i, pid[i]);
}
if (pid[1] == 0){
printf("It's emptyn");
} else{
printf("Not emptyn");
}
return 0;
}
我也使用了memset(pid[1],NULL,sizeof(pid[1]))
并检查了pid[1] == NULL
,但它给出了相同的结果。任何帮助都将不胜感激!
pid[1]
是pid
的一个元素。pid
是char[20]
的10元素阵列,因此pid[1]
是char
的20元素阵列。
pid[1]
是一个数组,因此在pid[1] == 0
等表达式中使用时,它被转换为指向其第一个元素的指针。转换结果不会是NULL
,因为它应该是一个有效的数组。
您要做的操作类似于检查字符串是否是像strcmp(pid[1], "") == 0
这样的空字符串。