c - 如何检查C中的空数组

标签 c arrays

我在 C 中有以下代码:

int i = 0;
char delims[] = " \n";
char *result = NULL;
char * results[10];
result = strtok( cmdStr, delims );
while( result != NULL )
{
     results[i] = result;
     i++;
     result = strtok(NULL, " \n");
}

if(!results[1])
{
    printf("Please insert the second parameter...\n");
}
else
{
    ...
}

它总是执行 else 条件,即使 results[1] 为空也是如此。

我试过 results[1] == NULL 但没有成功。

如何检查它是否为空?

最佳答案

初始化 results 数组,使所有元素都为 NULL:

char* results[10] = { NULL };

在发布的代码中,元素被初始化并且将保存随机值。

此外,防止超出 results 数组的范围:

while (i < 10 && result)
{
}

关于c - 如何检查C中的空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13869656/

相关文章:

c - 为什么 gettimeofday 返回奇怪的 tv_sec?

c - 如何在 C 库中初始化数组大小?

c - openCL 中的多维内核启动不起作用

c - x86-64 汇编到 C

c++ - 使用 fwrite 将一维数组写入单个 block 与按元素写入

arrays - 在 Ruby 中,如何检查数组中是否至少有 80% 的元素与某个模式匹配?

java - Java 数组元素比较

c++ - 为什么当 int array[n] 无效时 new int[n] 有效?

c - 我怎样才能做得更聪明?

c - 循环一个 Const Char