例如,假设我刚刚使用malloc创建了一个char **字符串。
如何将每个索引字符串[i]设置为NULL?它最初是否设置为NULL?因为当我用另一个函数检查索引等于NULL时,就像 if(strings [i] == NULL); 它似乎永远不会起作用。 有帮助吗? 对不起,我是动态记忆的新手..
答案 0 :(得分:1)
NULL通常被定义为扩展为(void *)0
的宏您可以使用calloc
分配并初始化为零。
char* buffer = calloc(4, sizeof(char);
if(*buffer == 0) {
printf("%s\n", "*buffer == 0");
}
答案 1 :(得分:0)
malloc()
仅分配内存。您应该使用calloc()
分配内存并将分配的内存归零。
作为一个指针数组,每个元素现在将等于NULL
。
char **strings = calloc(1024, sizeof *string);
if(strings[1] == NULL)
printf("%s", "yes. NULL");