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;'。 –