c++ - 将大小设置为结构类型全局变量时出现编译器错误

标签 c++ string struct

我收到编译器错误:

scheduleA3.cpp:97:16: error: variable length array of non-POD element type 'Section'
Section section[jk[1]];

我有一个结构:

struct Section
{ 
int places;
string cities;
}; 

我在这条语句之后将我的全局变量声明为 Section section[jk[1]];

问题是我无法设置自定义索引长度 jk 是一个用作计数器的数组,也是一个全局变量。如果我设置 Section section[0] 那么一切都会编译。关于为什么编译器限制使用自定义索引大小的任何想法?感谢所有帮助,让我知道我是否可以帮助使我的问题不那么模糊。

最佳答案

如果在编译时不知道数组的大小,可以使用 vector 代替:

#include <vector>

std::vector<Section> section(jk[1]);

关于c++ - 将大小设置为结构类型全局变量时出现编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22113299/

相关文章:

c++ - 将字符串作为 const char* 传递

c - strcpy to struct 时出现段错误

c++ - 按位分量和中的段错误

c++ - Uncrustify 和/或 Universal Indent GUI 可以拆分字符串文字吗?

c++ - QObject 的多重继承

c++ - 如何生成具有指数分布(均值)的随机数?

ruby - 获取 Ruby 字符串中特定单词后的单词?

c - 无法写入引用的内存

c - return 在返回结构时从指针生成整数而不进行强制转换

c++ - 单击窗口 x 轴的末端时,鼠标单击会导致 OpenGL 中的光线创建不正确吗?