我的代码的这一部分:
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/