一个数组越界的问题
class A
{
public:
int i;
}
class B
{
public:
A* a;
}
程序如下:
...
B* b = new B[2];
b[0].a = new A[2];
b[0].a[0].i = 1;
b[0].a[1].i = 1;
b[0].a[2].i = 1;//单步执行,该句为何没报错
b[1].a[0].i = 1;//此处报错
...
小的刚学C++,还请多多指教
[解决办法]
数组越界有可能都不报错。
这取决于你的数组越界时要写的内存快有没有被别的占用。 如果被占用,对方有写保护的话就报错。
[解决办法]
上一句是数组越界,可能不报错
下一句是使用未初始化的指针,肯定要报错