如何检查数组中有多少个空元素?

时间:2016-01-14 14:48:05

标签: c

我正在尝试保存数组中有多少空元素。这是我到目前为止所做的,但它打印出所有行都是“非空”,这是错误的。 我怎么能这样做?

{{1}}

2 个答案:

答案 0 :(得分:8)

执行arr[i] == NULL时,arr[i]衰减到arr[i](即&arr[i][0])中指向数组第一个元素的指针,该指针将永远NULL

我怀疑你想要,例如类似于arr[i][0] == '\0'

答案 1 :(得分:5)

两个问题:

  1. 此:

    char arr[10][50]={NULL};
    

    应该是

    char arr[10][50]=enter image description here; /* Initializes the whole 2D array with zeros */
    

    char arr[10][50]={{'\0'}}; /* Does the same thing as above; '\0' == 0 */
    

    这里的问题是:

    1. NULL通常与指针一起使用,但arr用于存储char s,而char s不是指针。
    2. 在初始化2D数组时,应该使用额外的一对括号,而不是一维数组。
    1. 下面:

      if(arr[i] == NULL)
      

      检查2D阵列的每一行是否为NULL。换句话说,您正在检查每个子阵列是否具有地址NULL。这不是真的,可能与你的想法相反。

      @Joachim Pileborg's answer提供了有关此问题的更多信息以及可能的解决方案。