数组越界造成的std::bad_alloc中断

std::bad_alloc异常一般是在new的时候因为内存不足而引起的

 

但是数组的越界也会导致在越界代码后进行new,ifstream,ofstream等操作抛出异常

 

比如如下代码

 

 

int *p = new int[0]; for(int i = 0; i < 10; ++i) p[i] = 0; ofstream ofile("test.txt", ios::out); ofile.close(); return 0; 

 

执行到ofstream的时候就出现std::bad_alloc异常

你可能感兴趣的:(ios)