c++ - 如何将 vector 大小分配给数组大小C++?

标签 c++ arrays

如何将数组的大小设置为等于 vector 的大小。这是我的代码:

vector<Point> data_obj;
int my_array[data_obj.size()]

但是我收到编译错误:

error C2057: expected constant expression
error C2466: cannot allocate an array of constant size 0

我不明白这个错误。您能解释一下吗?

最佳答案

正如错误所述,静态数组的大小在编译时必须是常量。 std::vector 的大小可能在运行时发生变化,因此不能保证数组的大小恒定。你必须创建一个动态数组

int* my_array = new int[data_obj.size()];

记得删除它

delete[] my_array;

关于c++ - 如何将 vector 大小分配给数组大小C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27273046/

相关文章:

java - 从 Java 调用 C++,但 Java 加载了错误的 Glibc 版本

c - 将int值添加到C中的char数组

php - json_decode, foreach 只从 json 字符串返回一行

c++ - 虚拟派生的多态类的大小

c++ - 以下用于在 openGL 中加载着色器的代码给出了堆损坏错误

C++ 设置 : No match for - operator

c++ - Stroustrup 第 4 章练习 6 : Improve efficiency

java - JNI 中的复杂数组初始化

javascript '=' 作为链接对象?

java - 获取 byte[] 数组的 float[] View