我在分配给另一个结构指针中的结构指针时遇到问题
结构如下所示:
头文件.h
typedef struct {
int drawnlines;
char *name;
} player;
typedef struct {
char a, b;
p *mover;
p *previous;
} lastmove;
在另一个函数中,我调用了另一个应该更改指向该结构的指针的函数,这也是给我警告的函数:
程序.c
#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;