我无法在另一个结构指针
中分配结构指针结构看起来像这样:
typedef struct {
int drawnlines;
char *name;
} player;
typedef struct {
char a, b;
p *mover;
p *previous;
} lastmove;
在另一个函数中我调用另一个应该更改指向这个结构的指针的函数,这也是给我一个警告的函数:
#include header.h
.....
lastmove lmv;
lmv.mover=malloc(sizeof(player *));
lmv.previous=malloc(sizeof(player *));
player p;
p.drawnlines=0;
p.drawnlines=0;
strcpy(p.name, "patrik");
function(&lmv, &p);
.....
int
function(lastmove *lmv, player *p)
{
lmv->a='b';
lmv->b='a';
lmv->previous=lmv->mover;
lmv->mover=p; // warning: assignment from incompatible pointer type
}
我的代码有什么问题?
更新:现在代码有效,这是一个简单的错误。结构“lastmove”现在更改为
typedef struct {
char a, b;
player *mover;
player *previous;
} lastmove;
答案 0 :(得分:1)
嗯,在你的代码中,mover
是一个指向p
类型的指针,它没有在任何地方定义 - 你是说这个吗?
typedef struct {
char a, b;
player *mover;
player *previous;
} lastmove;
另外,我认为您的分配存在问题。你正在为player*
分配足够的空间,这是指向玩家的指针,当你需要的是player
足够的空间时。