在c / c ++中:
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
答案 0 :(得分:0)
您的代码在释放错误后可以访问。如果您修复了该错误,这个谜团将消失。真的就是这么简单。