我们有时候发现,形如delete [] a ,代码执行的时候出现错误,我知道有两种可能情况,列举如下
原因1
例子
int * a = new int[100];
a[99] =11; //ok
delete [] a;
int * a = new int[100];
a[100] =11; //error
delete [] a;
可见越界操作是这类错误的原因之一
原因1
例子
int * a = new int[100];
int * b;
a = b ;
a = a+n;
delete [] a;
可见头指针偏移也使是这类错误的原因之一;
大家不妨试试,以第一种情况比较难以除错,第二种情况最为常见,但易于排故
本文探讨了使用delete[]操作符时可能出现的两种典型错误:数组越界访问和头指针偏移。这两种情况都是导致程序运行时错误的常见原因,并提供了具体的代码示例来说明这些错误是如何发生的。
1895

被折叠的 条评论
为什么被折叠?



