事情是这样的,昨晚我在分配一个大小为n的数组空间时,无意将new int[n]写成了new int(n) //注:n通过参数传递进来
编译时程序没有出错,结果我在使用new int(n)分配的数组空间时,程序老是报错,提示栈溢出。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
今天看了一下书,原来new int(100)和new int[100]是两种完全不一样的用法。
new int(100)只分配一个存放int整型的内存空间,返回一个指向该整型空间的指针,并且指定内存中的初始值为100,
相当于int a=100或int *b=new int(100);
----------------------------------------------------------------------------------------------------------------------------------------------------------------
new int[100]分配100个int整型大小的内存空间,返回指向该空间的首地址的指针。
如int *arr=new int[100];
释放空间数组空间用delete[ ] arr;千万不能这样用delete arr,这样只释放第一个数组的空间而已。
------------------------------------------------------------------------------------------------------------------------------------------------------------------