error: incompatible types when assigning to type ‘FILE’ from type ‘FILE *’ 24 | if((fds=fopen(argv[2],"a+"))==NULL)
时间: 2024-01-22 21:02:18 浏览: 173
这个错误提示是因为在调用fopen函数时,返回的是一个指向FILE类型的指针,而你将其赋值给了一个FILE类型的变量。
要修复这个问题,你需要将fds变量的类型改为指向FILE类型的指针,例如:
```c
FILE *fds;
```
然后将fopen函数的返回值直接赋值给fds变量,例如:
```c
fds = fopen(argv[2], "a+");
```
这样就可以避免这个错误了。
相关问题
error: incompatible types when assigning to type 'float *' from type 'float'
这个错误通常是因为将一个`float`类型的值直接赋值给一个`float*`类型的指针变量,或者将一个`float*`类型的指针变量直接赋值给一个`float`类型的变量。
例如:
```
float *ptr;
float value = 3.14;
ptr = value; // 错误:将float类型的值直接赋值给float*类型的指针变量
value = ptr; // 错误:将float*类型的指针变量直接赋值给float类型的变量
```
解决这个错误的方法是确保将指针变量指向一个合适的内存地址,或者使用指针操作符`*`来获取指针变量所指向的值。
例如:
```
float *ptr;
float value = 3.14;
ptr = &value; // 正确:将指针变量ptr指向变量value的地址
value = *ptr; // 正确:使用指针操作符*来获取ptr所指向的值
```
在这个例子中,我们使用了取地址符`&`来获取变量`value`的地址,并将该地址赋值给指针变量`ptr`。同时,使用指针操作符`*`来获取`ptr`所指向的值,并将该值赋值给变量`value`。
error: incompatible types when assigning to type ‘float’ from type ‘float *’ k[ii]=*(pointer+ii);
这个错误提示是因为你正在将一个指针类型的变量赋值给了一个浮点型变量。
可能是你在操作数组时,将一个指向数组元素的指针赋值给了一个数组元素变量。你需要检查一下代码,确认变量类型的一致性。
如果你需要将指针指向的值赋值给一个浮点型变量,可以使用如下语句:
```c
k[ii] = *(pointer+ii);
```
这句话的意思是,将指针 `pointer` 指向的地址加上 `ii` 的偏移量,得到对应的地址,然后取出该地址上的值,赋值给 `k[ii]` 变量。
如果你仍然无法解决问题,请提供更多的代码和上下文信息,让我更好地理解你的问题。
阅读全文