如何测试char数组是否为null?

时间:2011-09-27 22:05:23

标签: arrays null char

我一直在做(在C中)

char array[100];
if (array == NULL)
   something;

这是非常错误的(由于我的程序不起作用,我终于学会了)。我可以测试一个新数组以查看是否还没有放入其中的等价物是什么?

另外,如何将数组清空/清除?

我知道有关于这个主题的其他帖子,但我找不到一个直截了当的答案。

1 个答案:

答案 0 :(得分:2)

声明的数组
char array[100]

总是有100个字符。

通过“清理”,您可能意味着为每个广告位分配特定字符,例如字符'\0'。您可以使用循环或多个库调用之一来清除内存或移动内存块。

查看memset - 它可以很好地“清除”或“重置”你的数组。

如果您正在使用字符串,并且特殊的char数组以零结尾,那么为了测试获取空数组,请参阅this SO question。否则,如果你有一个不用于表示文本的常规字符数组,写一个循环以确保数组中的所有条目都是你特殊的空白字符,无论你选择它是什么。

你也可以像这样声明你的角色数组:

char* array = malloc(100);

甚至

char* array = NULL;

但这有点不同。在这种情况下,数组为NULL意味着“没有分配数组”,这与“已经分配了一个数组,但我还没有放入任何内容。”