Когда компилятор компилирует main.c
, он должен иметь возможность видеть определение struct graph
, чтобы он знал, что существует член с именем cap
. Необходимо переместить определение структуры из файла .c в файл .h .
Альтернативный метод, если вам нужно, чтобы graph_t
был непрозрачным типом данных , - это создание функций доступа, которые принимают указатель graph_t
и возвращают значение поля. Например,
graph.h
int get_cap( graph_t *g );
graph.c
int get_cap( graph_t *g ) { return g->cap; }