【问题标题】:how test if char array is null?如何测试 char 数组是否为空?
【发布时间】:2011-11-26 10:25:40
【问题描述】:

我一直在做(用 C 语言)

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

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

另外,你如何让一个数组为空/清理它?

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

【问题讨论】:

    标签: arrays null char


    【解决方案1】:

    用

    声明的数组
    char array[100]
    

    总是有 100 个字符。

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

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

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

    你也可以像这样声明你的字符数组:

    char* array = malloc(100);
    

    甚至

    char* array = NULL;
    

    但这有点不同。在这种情况下,数组为 NULL 表示“未分配数组”,这与“已分配数组但我尚未在其中放入任何内容”不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-20
      • 2011-02-27
      • 2011-09-17
      • 1970-01-01
      • 1970-01-01
      • 2019-03-22
      • 1970-01-01
      相关资源
      最近更新 更多