gpt4 book ai didi

c - 结构矩阵的 malloc - C

转载 作者:太空宇宙 更新时间:2023-11-04 01:27:47 24 4
gpt4 key购买 nike

我正在从事一个游戏项目。我的一个结构包含另一个结构的矩阵。我无法让 malloc 工作。这是我的实际代码:

m->tiles = malloc(sizeof(struct *tile)*width);

for (i=0; i<width ; i++){
m->tiles[i] = malloc(sizeof(struct tile)*height);
}

我收到了这个错误信息:

 map.c:111:37: error: expected ‘{’ before ‘*’ token
m->tiles = malloc(sizeof(struct *tile)*width);

我从来没有这样做过。已经为 int 矩阵分配内存但从未为 struct 矩阵分配内存。

谢谢。

编辑:谢谢 BLUEPIXY,您的回答有效。但我认为我没有很好地定义我的结构:

struct map{

int map_width; // Nombre de tiles en largeur
int map_height; // Nombre de tiles en hauteur

struct tile **tiles; // ensemble des tiles de la map
};

应该是“struct tile ***tiles”?

最佳答案

struct map{
int map_width;
int map_height;
struct tile **tiles;
};

...

m->tiles = malloc(sizeof(struct tile*)*height);

for (i=0; i<height ; i++){
m->tiles[i] = malloc(sizeof(struct tile)*width);
}

注释

Type **var_name = malloc(size*sizeof(Type *));

Type **var_name = malloc(size*sizeof(*var_name));

关于c - 结构矩阵的 malloc - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28160994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com