【发布时间】:2018-03-28 12:00:02
【问题描述】:
我见过两种在 C++ 中声明动态数组的方法。一种是使用 new 运算符:
int *arr = new int [size];
和其他直接声明:
int arr[size];
注意:这里注意 size 是一个变量,其值将由用户在运行时提供。 问题是在 C++ 中声明动态数组的最佳方法是什么?
【问题讨论】:
-
第二个不是标准C++,它是一个编译器扩展(一些编译器支持)
-
@Gaurav Sahu 有什么问题?
-
您能具体说明您的问题吗?
-
第二种语法是有效的 C 但不是 C++。这两件事有不同的含义,C++ 结构被翻译成 C 为 `int* arr = (int*)malloc(sizeof(int) * size)。 C 构造不能直接转换为 C++。
-
为什么不使用 std::vector-std::array?
标签: c++ arrays dynamic declaration