我有这个表达:
const int numPlayers = 2;
player players[numPlayers];
这是一组用户定义的类型播放器(使用struct)。但是,我收到一个错误,说
numPlayers
必须是一个恒定值。expression must have a constant value
我究竟做错了什么?
我也像这样初始化了数组:
player *players = (player*)calloc(sizeof(player), numPlayers);
但是在程序崩溃之前,我无法访问该结构的任何局部变量。
最佳答案
在C99中,以下功能可以正常使用。它是一个可变长度数组(VLA)。
const int numPlayers = 2;
player players[numPlayers];
否则,请使用
#define
作为真实常量。#define numPlayers 2
player players[numPlayers];