2 bat numb Bat_numb 于 2016.05.08 15:20 提问

初学者求教,c++中new如何分配数组内存

c++中使用new定义动态数组时,如果数组大小已知,那么会如何分配内存?是在程序运行时按照使用的元素数分配还是按照数组大小一次性分配(和普通数组一样的方式)

5个回答

QuantumEnergy
QuantumEnergy   2016.05.09 00:02
已采纳

也是一次性分配,你可以自己测试下,申请完,看它的大小

QuantumEnergy
QuantumEnergy 回复Bat_numb: 我写了一段测试代码(通过汇编和内存简单分析):http://blog.csdn.net/quantumenergy/article/details/51365425
一年多之前 回复
Bat_numb
Bat_numb 怎么看呢…sizeof不是不能测动态数组吗
一年多之前 回复
CSDNXIAON
CSDNXIAON   2016.05.08 15:32

C++ new内存分配
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

a179705090
a179705090   2016.05.08 17:24

运行时肯定已经知道数组的大小了,数组多大就分配多大的内存。

qq423399099
qq423399099   Ds   Rxr 2016.05.08 20:23

都可以的。
如果要分配的大小比较大的话,建议用new
new还需要你delete,是在堆分配空间 效率较低
而[]直接在栈上分配 会自动释放,效率高,但是栈空间有限

fsjyclb
fsjyclb   2016.05.08 22:08

看你怎么写,分配之前最好if...else判断下

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!