【发布时间】:2017-04-03 15:02:23
【问题描述】:
对于学校,我正在做一个项目,我必须使用指针保存地图。该地图由“单元”结构组成。初始化地图时,我想使用函数 index_map 来返回单元格的地址,以便我可以更改它的属性。但是,当我尝试编译此代码时,会发生以下错误:
警告:来自不兼容指针类型的赋值 [-Wincompatible-pointer-types] placeInMap = &(w->map) + stepxx + stepyy;
这是我的 index_map 函数:
`cell* index_map(worldmap* w, int x, int y)
{
cell* cellInMap;
size_t stepx = sizeof(cell)*w->cols;
size_t stepy = sizeof(cell);
cellInMap = &(w->map) + stepx*x + stepy*y;
return cellInMap;
}*`
Worldmap 是一个结构体,定义为:
`typedef struct worldmap
{
cell* map;
unsigned int rows;
unsigned int cols;
} worldmap;`
Cell 是一个结构体,定义为:
`typedef struct cell
{
celltype type;
unsigned int owner;
}cell;`
【问题讨论】:
-
您的代码中没有二维数组。为什么在标题中提到一个?