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
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! :)
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