【发布时间】:2018-04-20 23:05:03
【问题描述】:
我要解决的问题如下:我将一个整数作为输入,这将是我的结构数组的大小。我想在 .h 文件中定义数组,因为大小和数组都必须是全局的。
在 .h 文件中我写 extern NAME_OF_STRUCT my_array[]; 然后在我的 .cpp 文件中我写 NAME_OF_STRUCT my_array[lenght_of_array];初始化它,但它会抛出这个错误:
“文件范围内不允许变长数组声明”
我该怎么办?我还不知道在里面放什么,因为我需要用从文本输入中获取的数据填充结构中的一些值。
【问题讨论】:
-
听起来像是
std::vector的工作。 -
如果 IT 在编译时不知道数组有多大,则编译器无法创建您的数组!如果您还没有了解动态内存分配和指针,那么是时候了。然后,最终,将指针隐藏在 std::vector 之类的东西中作为答案向您展示了 --edit:实际上 c++ 是否允许像现在在 C 中一样的可变长度数组声明?错误消息暗示问题出在文件范围内...
标签: c++ arrays vector global-variables