У меня есть следующий код. Кажется, что последовательность чтения неверна. Любая помощь?Двойное разыменование в структуре 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/y из-за этого.
Где вы инициализируете 'head-> coord'? –
Попробуйте правильную парантезу: 'scanf ("% d ", & ((head-> coord) -> y));' –
@OliverCharlesworth Спасибо, не подумал об этом. Думал, что я получил его при инициализации головы. –