Давайте посмотрим на ваши объявления:
typedef struct{
int montante;
int data;
int periodicidade;
char tipo[MAX_CHAR_TIPO_MOV];
char descricao[MAX_CHAR_DESCRICAO];
}sistema;
typedef struct{
int indice;
struct sistema tabela[MAX_MOVIMENTOS];
}movimentos;
Проблема в том, что вы ищете тип с именем struct sistema
, но вы еще не объявили такой тип; вместо этого вы объявили анонимный тип структуры и создали для него имя определения типа sistema
. Чтобы получить доступ к типу с именем struct sistema
, вам нужно будет указать тег struct в определении:
struct sistema { ... };
Тег struct sistema
и имя typedef sistema
находятся в разных пространствах имен; Вы могли бы написать
typedef struct sistema { ... } sistema;
и используйте оба sistema
и struct sistema
взаимозаменяемо, хотя это, вероятно, может сбить с толку.
В этом случае проще всего изменить
struct sistema tabela[MAX_MOVIMENTOS];
до
sistema tabela[MAX_MOVIMENTOS];
в типе movimentos
.