C 编译错误-从文件中读入

C 编译错误-从文件中读入,c,string,compilation,scanf,C,String,Compilation,Scanf,我声明了一个字符数组,如下所示 char workingString[1032] fscanf(ifp, " %s", &workingString); 我正在用fscanf阅读这个数组,就像这样 char workingString[1032] fscanf(ifp, " %s", &workingString); 在使用fscanf的特定代码行中,我得到了这个编译错误 warning; format '%s' expects argument of type 'cha

我声明了一个字符数组,如下所示

char workingString[1032]
fscanf(ifp, " %s", &workingString);
我正在用fscanf阅读这个数组,就像这样

char workingString[1032]
fscanf(ifp, " %s", &workingString);
在使用fscanf的特定代码行中,我得到了这个编译错误

warning; format '%s' expects argument of type 'char *', but argument 3 has type 'char (*)[1032]' [W-format]
我不明白错误说明了什么,因此我不知道从哪里开始纠正这个问题

fscanf(ifp, " %s", workingString);
fscanf(ifp, " %s", workingString);

对于
scanf()
或相关函数中的数组,绝对不能使用
&

这是因为您要获取数组的地址,这意味着结果值的类型为“指向1032字符数组的指针”,但
fscanf()
需要一个普通的“指向字符的指针”。两个指针的值相同,但类型不同

因此,您只需删除
&
运算符,因为数组的名称会衰减为指向第一个元素的指针: