returning 'DataType' {aka 'int'} from a function with return type 'DataType *' {aka 'int *'} makes pointer from integer without a cast [-Wint-conversion]|
时间: 2023-05-21 22:05:50 浏览: 130
这个问题是由于函数返回的类型为“DataType*”(也就是指针类型),但是实际返回的是一个“int”类型数据,所以编译器提示了这个警告:将整数转换为指针类型可能会导致错误。需要在返回语句之前将数据转换成相应的指针类型,以免出现错误。至于具体需要将返回值转换成哪种指针类型,需要根据具体情况而定。
相关问题
returning ‘int’ from a function with return type ‘DT *’ {aka ‘struct Student *’} makes pointer from integer without a cast [-Wint-conversion]
这个问题是一个编译警告,意思是在一个返回值类型为‘struct Student *’(即‘DT *’)的函数中返回了一个整数类型的值,这样会导致指针类型错误。需要进行强制类型转换或者检查返回值类型是否正确。
warning: returning ‘int’ from a function with return type ‘vo id *’ makes pointer from integer without a cast [-Wint-conversion]
这个警告信息提示你在一个返回类型为 `void*` 的函数中返回了一个整数,而没有进行强制类型转换。这种情况可能会导致程序在运行时出现错误。
常见的原因是在函数中使用了 `malloc` 或 `calloc` 等动态内存分配函数,并且没有正确地将返回值转换成 `void*` 类型。
解决这个问题的方法是在返回值前进行强制类型转换,例如:
```c
void *my_func() {
int *p = malloc(sizeof(int));
*p = 42;
return (void*)p;
}
```
这里在返回值前使用了强制类型转换将 `int*` 转换成了 `void*` 类型,避免了警告信息的出现。
阅读全文