简单的数组内存分配与大小动态分配和预定的大小
Simple array memory allocation with size dynamic allocated and predetermined size
我正在写一个程序,突然遇到了一个疑问。有两种方式我分配静态数组。
int main ()
{
int a[10];
}
int main()
{
int N;
cin >> N; //assume i input N as 10
int a[N];
}
在这两种情况下内存分配有什么不同?将在第二种情况下在运行时分配?
第二种方式是不允许的。第一种方法将在堆栈上创建内存。一旦main()退出,它就会被取消分配。如果需要动态分配,最好的方法是使用new:
int* = new int[N];
但是这样的话,你最终必须删除它。如果你不介意使用STL,那就用std::vector:
std::vector<int> a;
编译第二个。但这是错误的。标准C/c++不允许。
相关文章:
- 这是使用回溯的 nqueen 问题,但我使用了动态 2d 数组,我的程序编译良好,但不返回任何输出
- 动态更改数组的大小并读取值.(无矢量)
- 检测到堆损坏:在正常块 c++ 动态 2D 数组之后
- 动态维度数组的 C++ 别名指针
- C++ 在析构函数调用之前删除的动态成员数组
- 从类 c++ 动态创建数组
- 具有静态 std::array 的神经网络比使用动态 C 数组的神经网络慢
- "Error reading character of string" 为哈希动态增长数组的问题 (C++)
- 为什么我们在传递动态 2D 数组时不需要列数?
- 如何解决在使用动态 2D 数组进行矩阵乘法的 MPI 进行并行编程时的问题
- 使用动态布尔数组时出现问题
- C++ 在类中删除动态 2D 数组时不断"Aborted (core dumped)"
- 如何在C 中动态输入数组
- 关于删除动态对象数组
- 在C 中动态更改数组大小
- 使用动态指针数组进行动态对象分配 - 使用什么删除?
- 动态字符串数组分配错误
- 函数中的动态 2D 数组分配并将其返回给主数组
- c++动态字符串数组分配
- 使用字符串或字符动态分配(数组)