[Warning] passing argument 2 of 'search' makes pointer from integer without a cast
时间: 2024-10-18 20:10:49 浏览: 37
Passing-a-structure-as-a-function-argument.zip_ARGUMENT!
警告 "passing argument 2 of 'search' makes pointer from integer without a cast" 出现在C++编程中,通常表示你在调用名为 `search` 的函数时,试图将整数直接传递给需要指针类型的第二个参数。在C++中,如果你有一个整数变量,而某个函数期望的是指向数据的指针,你需要通过类型转换(cast)将其转换成指针。
例如,假设你有这样一个函数原型:
```cpp
int search(int* arr, int size, int target);
```
当你想搜索数组 `arr` 中的目标值 `target` 时,如果 `arr` 和 `target` 都是整数,你应该先创建一个指向 `arr` 的指针,然后再传入 `target`:
```cpp
int num = 42;
int* ptr = # // 创建一个指向 num 的指针
int result = search(ptr, sizeof(arr) / sizeof(arr[0]), target); // 正确的调用方式
```
如果没有进行这种类型转换,编译器会报这个错误,因为你直接把一个整数作为指针传递,这是不允许的。记得检查函数签名并适当地转换参数。
阅读全文