c - 赋值中的类型不兼容。 C

标签 c loops types incompatibletypeerror

我的代码的这一部分:

    char MAC_ADRESSES[MAX_LINES][100];
    for(j=i+1; j<=countlines; j++)
        {
            if((MAC_ADRESSES[j])==(MAC_ADRESSES[i]))
            {
                MAC_ADRESSES[j] = NULL;
            }

当我想用 NULL 更改字符串时,出现了关于不兼容类型赋值的编译器错误。不明白为什么..

最佳答案

大概MAC_ADRESSES不是指针数组。 NULL 是一个指针(在 C 中通常为 (void *)0),因此您不能将其分配给非指针变量。

编辑:由于您的定义是 char MAC_ADRESSES[MAX_LINES][100] ,你有一个二维数组,而不是指针数组。您无法存储NULL在这个数组中。不过,您可以通过在第一个字节中放置空字符来删除字符串:

            MAC_ADRESSES[j][0] = '\0';

请注意,您无法使用 == 测试字符串是否相等。 , 任何一个。您应该使用strcmp .

关于c - 赋值中的类型不兼容。 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18748086/

相关文章:

c - 如何使用labview从kinect获取图片

c - 了解 C 中的内存对齐约束和填充字节

java - 对照另一个数组列表检查数组列表

c++ - 处理 map 键中指向值的常量

c - 如何通过 Eclipse 使用 C 写入 txt 文件(通过控制台输入)

algorithm - 循环分析——算法分析

无法将完整字符串写入文件

javascript - jQuery 对象和元素

types - Category 类中的 id 成员类型有什么意义?

c++ - 为什么结构的 sizeof 不等于每个成员的 sizeof 之和?