Informática, perguntado por barbaraellen777, 11 meses atrás

o que tem de errado nesse codigo!!!, eu estou tentado alocar uma matriz dinamicamente mas esta dando esse erro:[Error] expected ']' before numeric constant,o que faço??
#include
#include
#define linhas 4 // linhas
#define colunas 5 // colunas
int main()
{
int i;
int **p = (int **)malloc(linhas * sizeof(int *));
p[0] = (int *)malloc(linhas * colunas * sizeof(int));
for (i = 1; i < linhas; i++)
{
p[i] = p[i – 1] + colunas;
}
for (i = 1; i < 1; i++)
printf("%d",linhas);

for (i = 1; i < 1; i++)
printf("%d",colunas);
free(p[0]);
free(p);

return 0;
}

Soluções para a tarefa

Respondido por Usuário anônimo
1
Boa noite!

Vou postar o código correto abaixo:

#include<stdio.h>
#include<stdlib.h>
#define linhas 4
#define colunas 5

int main(void) {
    int i, j;
    int **p;

    p = (int **)malloc(linhas*sizeof(int *)); // inicializou todas as linhas
    for(i = 0; i < linhas; i++) {
        p[i] = (int *)malloc(colunas*sizeof(int)); // inicializa cada coluna
    }

    for(i = 0; i < linhas; i++)
        for(j = 0; j < colunas; j++)
            p[i][j] = i*j; // aqui vc pode colocar um scanf, se quiser, para cada elemento da matriz, ou uma fórmula para calcular cada valor

    for(i = 0; i < linhas; i++) {
        for(j = 0; j < colunas; j++)
            printf("%d ", p[i][j]);
        printf("\n");
    }

    for(i = 0; i < linhas; i++)
        free(p[i]);
    free(p);

    return 0;
}

Espero ter ajudado! :)
Perguntas interessantes
Matemática, 6 meses atrás