A solução proposta foi a seguinte:
matriz = malloc(sizeof(int*) * linhas);
for(int i = 0; i < linhas; i++) {
matriz[i] = malloc(sizeof(int) * (colunas+1));
}
Esta solução é semelhante ao raciocínio desenvolvido pelo professor na aula. No entanto, na aula o professor estava tratando de uma matriz de strings
(arrays de char
), e, segundo entendi, é por este motivo que foi necessário adicionar mais uma coluna ((colunas + 1)
, em vez de apenas colunas
), já que uma string termina necessariamente com um \0
.
No entanto, no exercício proposto estamos tratando de um array de int
, e não de um array de char
. Assim, o correto não seria que a última linha de código ficasse assim?
matriz[i] = malloc(sizeof(int) * (colunas));
Obrigado.