C++动态数组的空间能不能重新申请,比如先定义数组a[n],再输入n的大小,且n重复改变。

2024-12-01 09:33:22
推荐回答(2个)
回答1:

动态数组的标准语法应该是这样的。
int * p ;
p = new int[n];(n是可变的)
delete [ ]p;(必须的步骤)
动态数组空间就是选取内存中的一块,使用完之后要释放,不然就可能造成内存泄露。
至于你说的,可以重复申请不,当然可以。重复以上步骤就行了。
p只是一个指针,里面存着内存地址。你可以赋值给其他指针是没问题的。
例如int * L = p;(这样L就指向p所指向的内存,也就是原来申请的内存)
p = new int [ x ]; 这样就又申请了。
不要忘了delete

回答2:

这个是不可以的
必须先确定数组大小和类型
如果想动态改变线性表长度要使用new