我一直在做(在C中)
char array[100];
if (array == NULL)
something;
这是非常错误的(由于我的程序不起作用,我终于学会了)。我可以测试一个新数组以查看是否还没有放入其中的等价物是什么?
另外,如何将数组清空/清除?
我知道有关于这个主题的其他帖子,但我找不到一个直截了当的答案。
答案 0 :(得分:2)
用
声明的数组char array[100]
总是有100个字符。
通过“清理”,您可能意味着为每个广告位分配特定字符,例如字符'\0'
。您可以使用循环或多个库调用之一来清除内存或移动内存块。
查看memset - 它可以很好地“清除”或“重置”你的数组。
如果您正在使用字符串,并且特殊的char数组以零结尾,那么为了测试获取空数组,请参阅this SO question。否则,如果你有一个不用于表示文本的常规字符数组,写一个循环以确保数组中的所有条目都是你特殊的空白字符,无论你选择它是什么。
你也可以像这样声明你的角色数组:
char* array = malloc(100);
甚至
char* array = NULL;
但这有点不同。在这种情况下,数组为NULL意味着“没有分配数组”,这与“已经分配了一个数组,但我还没有放入任何内容。”