Lev*_* 31 2 c++ arrays malloc dynamic-allocation variable-length-array
为某些数据分配内存有什么好处.相反,我们可以使用它们的数组.
喜欢
int *lis;
lis = (int*) malloc ( sizeof( int ) * n );
/* Initialize LIS values for all indexes */
for ( i = 0; i < n; i++ )
lis[i] = 1;
Run Code Online (Sandbox Code Playgroud)
我们可以使用普通的数组.
好吧,我不明白malloc是如何工作的,实际上是做什么的.所以解释它们对我来说会更有益.
假设我们sizeof(int) * n只n用上面的代码替换然后尝试存储整数值,我可能面临哪些问题?有没有办法直接从内存分配空间打印存储在变量中的值,例如这里是lis?
您的问题似乎是将动态分配的C风格数组与可变长度数组进行比较,这意味着您可能正在寻找:为什么变量长度数组不是C++标准的一部分?
然而,c ++标签产生了最终的答案:改为使用std::vector对象.
只要有可能,避免动态分配和对丑陋的内存管理负责〜>尝试利用具有自动存储持续时间的对象.另一个有趣的读物可能是:理解术语和概念的含义 - RAII(资源获取是初始化)
"假设我们sizeof(int) * n只n用上面的代码替换,然后尝试存储整数值,我可能面临哪些问题?"
- 如果您仍然认为n可以存储在此数组中的整数数量,您很可能会遇到未定义的行为.
| 归档时间: |
|
| 查看次数: |
2592 次 |
| 最近记录: |