我在 header.h 中声明了一个结构
struct SPlayer
{
int cardValue[11];
int score;
int bet;
int flag;
};
我想初始化 cardValue 数组,并在一个单独的 .c 文件中将所有 11 个值设为 -1,该文件链接到 header.h。所以我在 .c 文件中尝试了这个。对象玩家和庄家在 header.h 中声明
for (int i = 0; i < 11; i++)
{
player->cardValue[i] = -1;
dealer->cardValue[i] = -1;
}
但是,我收到以下错误:
Exception thrown: write access violation.
_player was 0x1110112.
请帮忙
如果对象玩家和经销商是该类型的对象,struct SPlayer
那么你必须写
for (int i = 0; i < 11; i++)
{
player.cardValue[i] = -1;
dealer.cardValue[i] = -1;
}
如果它们具有指针类型,struct SPlayer *
那么您需要分配(例如动态)struct SPlayer
指针将指向的类型的相应对象。
例如(在 C 中)
struct SPlayer *player = malloc( sizeof( struct SPlayer ) );
struct SPlayer *dealer = malloc( sizeof( struct SPlayer ) );
或者在 C++ 中,您应该使用运算符 new。
在检查指针不是空指针后,您可以使用循环
for (int i = 0; i < 11; i++)
{
player->cardValue[i] = -1;
dealer->cardValue[i] = -1;
}
请注意,正如John Bollinger
评论中指出的那样,在标题中定义对象不是一个好主意,因为如果标题将包含在多个模块中,您将违反一个定义规则。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句