【发布时间】:2019-10-28 17:02:45
【问题描述】:
在 c/c++ 中:
delete操作符用于删除一个动态数组,但是使用delete操作符删除一个数组后,再打印出来,有些值还是一样的。为什么?- 我希望这些值是垃圾。
#include <iostream>
using namespace std;
int main()
{
int n=5;
int*A=new int[n];
for (int i=0;i<n;i++)
A[i]=i+1;
delete [] A; //deleting 'A' array
for (int i=0;i<n;i++)
printf("%d ",A[i]);
}
输出将是:
0 0 3 4 5
如果我们删除delete [] A;,输出将是:
1 2 3 4 5
假设数组的元素应该有垃圾值,为什么数组的某些值仍然相同?
【问题讨论】:
标签: c++ c arrays pointers dynamic-memory-allocation