使用char数组的C警告:"警告:数组下标有类型' char'"

时间:2017-03-16 02:09:42

标签: c arrays types char warnings

我很困惑为什么会出现这种错误。 我的代码执行正常,结果正是我想要的,但是在使用命令编译我的c文件时: " gcc -std = c99 -Wall -o assignment2 assignment2.c"

以下是代码:

enter image description here

这是输出错误:

enter image description here

我会使用这个,但我确定它可能有一些原因导致错误显示,并且因为我的赋值标记可能希望在编译时出现此警告时接受它。

2 个答案:

答案 0 :(得分:4)

如果您使用i作为计数器,请使用int代替char

int i = 0;

这将解决问题。

但是,c也应该是int,因为fgetc()可以返回EOF int,并且通常返回fgetc() {1}}为int,因此您也应int使用c

您的代码应该是

char word[500];
int i = 0;
int c;

while (((c = fgetc(fp)) != EOF) && (c != '\n')) {
    word[i++] = (char) c;
}
word[i] = '\0';

答案 1 :(得分:-1)

应对

i进行评估,以便i < 500完整填充