c++指针数组用new运算符时,开辟内存空间不是已经固定了吗,例int*a=new int[10]

为什么说是动态的内存?为什么说事先并不知道要多少内存来存储我们想要存的东西?我们不是知道需要内存才去开辟相应的空间吗... 为什么说是动态的内存?
为什么说事先并不知道要多少内存来存储我们想要存的东西?我们不是知道需要内存才去开辟相应的空间吗
展开
 我来答
匿名用户
2018-03-13
展开全部
你理解稍微有点偏颇
动态是相对而言的, 一般来说,数组的定义是在写代码时就定义大小, 而动态分配内存是由代码根据条件来定义, 一旦new了, 首地址就固定
比如在程序运行中, 要分配多大的数组, 并不是由我们确定, 是代码通过计算得出, 我们在设计时就无法事先为它分配多大的内存空间, 这时就需要动态分配
更多追问追答
追问
那么,是不是我new一个数组,后面的元素个数可以随意给?数组占用内存的大小,只有给数组赋值完才能知道吗?
追答
是的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式