次のコードがあります。読書の順序が間違っているようです。どんな助け?構造体Cでの二重参照
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct punct{
int x;
int y;
}COORD;
typedef struct nod{
COORD *coord;
struct nod *urm;
}NOD;
int main()
{
NOD *head= malloc(sizeof(NOD));
scanf("%d", &head->coord->x);
scanf("%d", &head->coord->y);
printf("%d, %d", head->coord->x , head->coord->y);
return 0;
}
私は正常head->coord
を使用することにより、構造体の唯一のXフィールドにアクセスするために管理され、私はそれが私のコードの問題だ伝えることができるものとしています。私はすでに最初の構造体の最初のフィールドにあるので、そのためにx/yにアクセスすることはできません。
'head-> coord'はどこで初期化しますか? –
適切なparanthesisで試してください: 'scanf("%d "、&(head-> coord) - > y));' –
@OliverCharlesworthありがとうございました。私はそれが頭の初期化で覆われたと思った。 –