"array subscript is above array bounds"

Re: "array subscript is above array bounds"

por José Coelho de Pina -
Número de respostas: 0

"array subscript is above array bounds"

Diz que você está usando o índice (subscript) de um vetor ou matriz (array) fora dos limites definidos.
Por exemplo, a compilação do trecho de código a seguir apresenta esse aviso.

  int v[3];
  int i;
  
  for (i = 0; i <= 3; i++)
    v[i] = 1;

Note que isto não é um mero "aviso" pois, de fato, no trecho de código acima há um erro.
Acessamos a "variável" v[3] e o vetor é formado por v[0], v[1] e v[2],
já que na declaração de um vetor ou matriz (array) o número inteiro que vai entre colchetes
é o número de elementos do vetor ou matriz e não o índice da última posição.

ignoring result value of 'fgets'

Este aviso está dizendo que você não está usando o valor retornado pela chamada da função fgets.
Para tirar esse aviso você pode, pelo menos por enquanto, compilar com
a opção -Wno-unused-result . A especificação da função está logo abaixo, quem usa
linux pode obter a especificação da função no prompt fazendo

meu_prompt> man fgets

Façam o mesmo com fscanf e fprintf e vejam o resultado.

Especificação da função fgets

char *fgets(char *line, int maxline, FILE *fp)

reads the next input line (including the newline) from file fp into the character array
line; at most maxline-1 characters will be read. The resulting line is terminated with ’\0’.
Normally fgets returns line; on end of file or error it returns NULL.