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