c - 如何检查数组中有多少元素为空?

标签 c

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

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

//inserting values to arr

for(int i=0;i<10;i++){
   if(arr[i] == NULL){
       lines++;
       printf("empty");
   }
   else
       printf("not empty");
}

最佳答案

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

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

关于c - 如何检查数组中有多少元素为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34792434/

相关文章:

c - 当满足条件时,While 循环不会停止

c++ - Atom 和 i3/5 之间常见的 gcc C/C++ 标志?

c - 如何在嵌入式系统中为某个任务禁用/延迟看门狗定时器

c - dup2 错误文件描述符

c - 链表何时使用 -> 以及何时使用 .?

c - 自修改代码,复制/跳入堆失败

C - 设置存储过程调用超时(ocilib)

c - 在 C 程序中移动光标

c - 将 config.txt 数据保存在双向链表中

C fgets 与 fgetc 读取行