关于动态分配的问题
动态分配是开辟新的内存空间,为什么一定要撤消呢?
在研究过程中我发现了一个问题:
int main()
{int *p,*q;
p=new int[3];//分配空间,不赋值
q=p;//用q保留分配的指针
printf("%d\n",*(p++));
printf("%d\n",*(p++));
printf("%d\n",*(p++));//
//越界
printf("%d\n",*(p++));
printf("%d\n",*(p++));
printf("%d\n",*(p++));
delete q;//释放空间.
//delete ++q;//如果我想保留第一位,而释放后边的空间结果为什么会出错?
}
/*越界前,新分配的空间的值都是-842150451
越界后,的值是随机的,不稳定的
*/