Ich habe den folgenden Code. Es scheint, dass die Lesesequenz falsch ist. Irgendeine Hilfe?Double Dereferenz in struct 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;
}
Ich habe erfolgreich nur das x-Feld der Struktur head->coord
unter Verwendung von zugreifen verwaltet, und von dem, was ich das ist das Problem mit meinem Code berichten. Ich bin bereits auf dem ersten Feld der ersten Struktur, so dass ich nicht auf x/y zugreifen kann.
Wo initialisierst du 'head-> coord'? –
Versuchen Sie es mit der richtigen Paranthese: 'scanf ("% d ", & ((head-> coord) -> y));' –
@OliverCharlesworth Danke, habe nicht darüber nachgedacht. Dachte, ich habe es mit der Initialisierung des Kopfes abgedeckt. –