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