一般用new自动分配了之后用完了需要用delete释放,如下
int k=5;
int array=new int[k];
.
.
.
delete [] array;
array=NULL;
有的时候在运行的时候(或是多次运行之后)在delete的位置会出现中断,可以把delete删掉看看(一般程序不大应该不会对小项目有太大影响,就是一个编程习惯问题),如果把delete删掉了还是会在本个函数结束的位置出现中断,即使什么语句也没有。那么很有可能是array数组越界了,也就是你虽然定义了一个长度为5的array,但是在函数里你一直往里面添加东西,添加了6~7个。程序不会报错(忘了静态数组会不会),然而会在其他地方中断,比如delete的位置。
时间: 2024-10-07 07:03:01