C语言中的常量整数和数组初始化

死神3

我有这个表达:

const int numPlayers = 2;
player players[numPlayers];

这是一组用户定义的类型播放器(使用struct)。但是,我得到一个错误,说numPlayers必须是一个恒定值。

expression must have a constant value

我究竟做错了什么?


我也像这样初始化了数组:

player *players = (player*)calloc(sizeof(player), numPlayers);

但是在程序崩溃之前,我无法访问该结构的任何局部变量。

chux-恢复莫妮卡

在C99中,以下功能可以正常使用。它是一个可变长度数组(VLA)。

const int numPlayers = 2;
player players[numPlayers];

否则,将a#define用作真正的常数

#define numPlayers 2
player players[numPlayers];

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章