Iam試圖獲得這個數組的最大數量,它的數字從-20到30,但它返回像這樣的奇怪數字 - > 2255667如果一切順利,這是不可能的。從函數返回指針會給出奇怪的數字
int * ptomx(int a[],int n)
{
int max=-100;
int *point;
for(int i=0;i<=n;i++)
{
if(max<a[i])
{
max = a[i];
}
}
point = new int;
*point = max;
return point;
}
這是我在主做()
int maxTemp;
maxTemp=*(ptomx(a,n));
cout<<"Max temp is:"<<maxTemp;
是因爲在函數指針的函數返回後銷燬,並給出該存儲單元中的隨機數。如果這種情況需要解除引用,但是如何解決?
您有內存泄漏。返回的指針永遠不會被釋放。爲什麼不將該值作爲普通的非指針整數返回? –
我應該這樣做導致即時學習使用指針。 –
@AlexMoumoulidis你不應該這麼做*正是這樣*因爲'main'中指針的特殊用法也會泄漏內存。考慮使用'int * maxTemp;'和後面的'delete maxTemp;'。 –