将malloc的字符串索引初始化为NULL

时间:2015-03-21 03:51:10

标签: c arrays null malloc

例如,假设我刚刚使用malloc创建了一个char **字符串。

如何将每个索引字符串[i]设置为NULL?它最初是否设置为NULL?因为当我用另一个函数检查索引等于NULL时,就像     if(strings [i] == NULL); 它似乎永远不会起作用。 有帮助吗? 对不起,我是动态记忆的新手..

2 个答案:

答案 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");