【发布时间】:2018-04-11 02:35:10
【问题描述】:
我有这样的表达方式:
const int numPlayers = 2;
player players[numPlayers];
这是一个用户定义类型播放器的数组(使用结构)。但是,我收到一条错误消息,指出 numPlayers 必须是一个常量值。
expression must have a constant value
我做错了什么?
我也像这样初始化了数组:
player *players = (player*)calloc(sizeof(player), numPlayers);
但是如果程序不崩溃,我无法访问结构的任何局部变量。
【问题讨论】:
-
#define numPlayers 2,将int声明为const不是用于数组声明的常量。 -
另外,你有
calloc(size_t num, size_t size)的参数向后。 -
似乎是 C 的古老版本。在现代编译器中运行良好。顺便说一句#define 风格
is medicine worse than the disease