c - 结构数组中的用户输入结构数组上的 Malloc
问题描述
struct Card
{
char *color;
int value ;
};
struct Player
{
Card* Hand;
Card* deck;
};
struct Player player[MaximumNumberOfPlayers] = { //
{(struct Card*) malloc(numberOfCards * sizeof(struct Card)), (struct Card*) malloc(numberOfCards * sizeof(struct Card))}, //
{(struct Card*) malloc(numberOfCards * sizeof(struct Card)), (struct Card*) malloc(numberOfCards * sizeof(struct Card))}, //
{(struct Card*) malloc(numberOfCards * sizeof(struct Card)), (struct Card*) malloc(numberOfCards * sizeof(struct Card))}, //
{(struct Card*) malloc(numberOfCards * sizeof(struct Card)), (struct Card*) malloc(numberOfCards * sizeof(struct Card))}, //
{(struct Card*) malloc(numberOfCards * sizeof(struct Card)), (struct Card*) malloc(numberOfCards * sizeof(struct Card))}, //
{(struct Card*) malloc(numberOfCards * sizeof(struct Card)), (struct Card*) malloc(numberOfCards * sizeof(struct Card))}};
你好上面的代码可以正常工作,但是,有没有一种正确的方法来创建一个结构数组(播放器),其中包含结构(卡片)的用户输入数组?
struct Player player[MaximumNumberOfPlayers] = {
{(struct Card*) malloc((numberOfCards) * sizeof(struct Card)),
(struct Card*) malloc((numberOfCards) * sizeof(struct Card))}};
for (int i = 1; i < gameSettings.numberOfPlayers; i++)
{
player[i] = player[i - 1];
}
正在尝试这样的事情,但它无法工作,还有一种方法可以从用户输入中制作一个播放器结构数组吗?
解决方案
You probably want this:
struct Player player[MaximumNumberOfPlayers];
for (int i = 0; i < gameSettings.numberOfPlayers; i++)
{
player[i]->deck = malloc((numberOfCards) * sizeof(struct Card));
}
推荐阅读
- jenkins - 如何在 Kubernetes 中检查失败的容器日志
- python - 如何操作我的 DataFrame/Table 以便以下列格式显示?
- windows - PyQt5 控制窗口
- mysql - 从列中读取值并基于该值运行查询
- c++ - 为什么我的枚举在 exit() 期间会导致段错误?
- java - 雅加达邮件未能使用 Gmail 的不同选项同时获取另外 2 个附件
- javascript - WTForms SelectField 与“你确定”有关可以回滚的更改
- java - 如何解决 java.lang.NoSuchMethodError: java.util.Map.entry(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map$Entry
- python - 对包含 lambda 的字典列表进行索引和迭代之间的不同行为
- c# - c# 中使用具有命名空间和前缀的 XmlWriter 的 XML 文件格式