[警告] passing argument 2 of 'inputStudentInfo' makes pointer from integer without a cast [-Wint-conversion] inputStudentInfo(&newStudent, 1);
时间: 2024-09-11 20:06:33 浏览: 82
Passing-a-structure-as-a-function-argument.zip_ARGUMENT!
这个警告信息是C语言编译器给出的,它指出了在调用`inputStudentInfo`函数时存在一个类型不匹配的问题。具体来说,警告信息中的“passing argument 2 of 'inputStudentInfo' makes pointer from integer without a cast”表明在传递给`inputStudentInfo`函数的第二个参数时,整数类型(integer)被直接转换为了指针类型(pointer),而没有进行显式的类型转换。
为了解决这个问题,首先需要查看`inputStudentInfo`函数的定义,了解它的参数类型和预期的参数值。如果函数的第二个参数应该是`int`类型,那么应该直接传递一个整数值。如果函数的第二个参数应该是`int*`类型,即指向整数的指针,那么你应该传递一个整数变量的地址。
例如,如果`inputStudentInfo`的定义是这样的:
```c
void inputStudentInfo(Student* studentInfo, int* studentID) {
// 函数实现
}
```
你应该这样调用函数:
```c
int newID = 1;
inputStudentInfo(&newStudent, &newID); // 正确传递指针和整数变量的地址
```
如果`inputStudentInfo`的第二个参数其实不是指针类型,而你传递了一个指针,那么你需要修改函数的定义或者传递一个整数值。
修复后的代码应该避免类型转换警告,并且符合函数的实际需求。
阅读全文