別の構造体ポインタの構造体ポインタへの割り当てに問題があります
構造体は次のようになります。
header.h
typedef struct {
int drawnlines;
char *name;
} player;
typedef struct {
char a, b;
p *mover;
p *previous;
} lastmove;
別の関数で、この構造体へのポインターを変更するはずの別の関数を呼び出していますが、これは警告を表示する関数でもあります。
program.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;