Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

"(colunas + 1)"

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.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software