Основная проблема заключается в том, что массивы не назначаются, и к тому моменту, когда вы хотите установить g.mat
, он уже был инициализирован по умолчанию. То, что вы пытаетесь, должно присвоить значениям существующего экземпляра значениям. Еще одна проблема - некоторые отсутствующие фигурные скобки.
Вместо умолчанию инициализация g
, а затем пытается назначить значения своих членов, вы можете инициализировать на graphe
объект с заданными значениями для членов:
graphe g = {{{0, 1}, {1, 0}, {1, 1}, {0, 1}}};
Это также неявно инициализировать g.res
к 0
, но вы также можете инициализировать его конкретное значение:
graphe g = {{{0, 1}, {1, 0}, {1, 1}, {0, 1}}, 42};
Вот пример использования designated initializers. Это может быть легче читать, чем в предыдущих примерах, и вы можете изменить порядок полей:
graphe g = { .mat = {{0, 1}, {1, 0}, {1, 1}, {0, 1}}, .res = 42};
Вам нужно будет уточнить, что «не работает». – 0x499602D2
Похоже, вы имели в виду: 'g.mat = {{{0, 1}, {1, 0}, {1, 1}, {0, 1}}};'. То есть другой набор фигурных скобок для инициализации массива. – 0x499602D2
Назначение и инициализация - это разные понятия в C. Вы не инициализируетесь, а назначаете. –