此代码有什么问题?它提供了预期的输出,但是存在运行时错误,我不知道它是什么。
有人可以解释它背后的概念吗?
int main()
{
int *a = new int(7);//assume the heap memory has address 4F
int *p;
p = a;
cout << a << endl;
cout << p << endl;
cout << *a << endl;
cout << *p << endl;
*p = 10;
cout << *a << endl;
delete p;
delete a;
return 0;
}
您重新分配*p = 10
,但a
和p
仍然在内存中的同一地址。如前所述,您尝试两次删除相同的内存空间,这可以解释运行时错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句