为某些数据分配内存的好处是什么。相反,我们可以使用它们的数组。
喜欢
int *lis;
lis = (int*) malloc ( sizeof( int ) * n );
/* Initialize LIS values for all indexes */
for ( i = 0; i < n; i++ )
lis[i] = 1;
我们本可以使用普通数组。
好吧,我不清楚malloc的工作原理,实际上是什么。因此,对他们进行解释将对我更有益。
并假设我们sizeof(int) * n
仅用n
上述代码替换,然后尝试存储整数值,我可能会遇到什么问题?有没有一种方法可以直接从内存分配空间中打印存储在变量中的值,例如,这是lis
吗?
您的问题似乎是将动态分配的C样式数组与可变长度数组进行比较,这意味着您可能正在寻找它:为什么可变长度数组不属于C ++标准?
但是c ++标记产生了最终答案:使用std::vector
object代替。
只要有可能,就避免动态分配并避免丑陋的内存管理->尝试利用具有自动存储持续时间的对象。另一个有趣的读物可能是:了解术语和概念的含义-RAII(资源获取是初始化)
“并且假设我们sizeof(int) * n
只n
用上面的代码替换,然后尝试存储整数值,我可能会遇到什么问题?”
-如果您仍然认为n
可以存储在此数组中的整数数量,则很可能会遇到不确定的行为。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句