3main.c:12:7: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
时间: 2024-03-09 17:47:19 浏览: 188
这个警告是因为你在代码中将整型的返回值赋值给了指针类型的变量,导致编译器发出警告。可能的原因是你没有正确地声明变量的类型。请确保你声明的变量类型与函数返回值类型匹配。如果你确定返回值是一个指针类型,那么可以使用类型转换来解决这个问题,例如:
```c
fp = (FILE*)err;
```
这里将整型的返回值`err`强制转换为指针类型`FILE*`,然后赋值给变量`fp`。这样就可以消除编译器的警告了。但是需要注意的是,这种类型转换可能会导致运行时错误,因此需要谨慎使用。
相关问题
Main.c:41:9: warning: assignment makes integer from pointer without a cast temp = *(store + i * SIZE + j);
这个警告提示是因为你将一个指针类型的值赋值给了一个整型变量。可能是你在代码中使用了类似以下的语句:
```c
int temp;
temp = *(store + i * SIZE + j);
```
其中 `store` 是一个指向某个数组的指针,`i` 和 `j` 是循环计数器,`SIZE` 是数组的大小。这里的 `*(store + i * SIZE + j)` 表示数组中第 `i` 行、第 `j` 列的元素。
如果 `*(store + i * SIZE + j)` 返回的是一个指针类型的值,那么就会发生警告。要消除这个警告,可以将 `temp` 的类型改为指针类型,或者将 `*(store + i * SIZE + j)` 强制转换为整型。具体的解决方法要根据你的代码实际情况来确定。
assignment makes pointer from integer without a cast
这个错误通常发生在将整数强制转换为指针类型时,例如:
```
int a = 5;
int *ptr = a;
```
在这个例子中,将整数a的值赋给指针ptr会导致编译器发出"assignment makes pointer from integer without a cast"的错误。这是因为指针类型和整数类型是不兼容的。
要解决这个问题,需要将整数强制转换为指针类型,例如:
```
int a = 5;
int *ptr = (int *)a;
```
在这个例子中,`(int *)`表示将整数a转换为指向整数的指针类型。这样就可以将整数a的值存储在指针ptr中了。但需要注意的是,这种强制转换可能会导致未定义的行为,因此应该尽可能避免使用它。
阅读全文