[英]Function with Pointer type return and pointer argument in C
我試圖將傳遞指針理解為參數和指針返回類型 function。 類似的概念適用於字符串,但不適用於整數。 有人可以在下面的代碼中找到問題並更正它。 錯誤信息是
無法將“int**”轉換為“int*”
' 提前謝謝了。
#include <stdio.h>
int *findMax(int *num1, int *num2)
{
if (*num1 > *num2)
{
return (num1);
}
else
{
return (num2);
}
}
int main(void)
{
int *_num1;
*_num1 = 10;
int *_num2;
*_num2 = 12;
int *bigger;
bigger = findMax(&_num1, &_num2);
return 0;
}
您創建了兩個int
指針 - 但它們實際上並不指向任何int
s,因此當您取消引用它們以分配值時,您會得到未定義的行為。
int main(void)
{
int _num1 = 10; // note: not a pointer
int _num2 = 12; // note: not a pointer
int *bigger;
bigger = findMax(&_num1, &_num2); // here you take the addresses of the int:s
printf("%d\n", *bigger);
}
無法將“int**”轉換為“int*”
這個錯誤讓你免於很多痛苦。 由於您將這兩個變量聲明為int*
,因此獲取此類變量的地址會產生一個int**
,這不是您的 function 接受的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.