Olá gente, já estou agarrado nesse problema há dias, alguém deve saber do que se trata, esse código sempre trava na execução, pelo vários teste que fiz, ocorre que quando crio a matriz dentro da função insere tento imprimir os valore na matriz mapa dentro do main não funciona. Já se eu alocar a matriz primeiro para mapa e depois inserir não há problema, alguém pode me dizer qual o erro que cometi?
Pergunta
Pedro André Aguiar
Olá gente, já estou agarrado nesse problema há dias, alguém deve saber do que se trata, esse código sempre trava na execução, pelo vários teste que fiz, ocorre que quando crio a matriz dentro da função insere tento imprimir os valore na matriz mapa dentro do main não funciona. Já se eu alocar a matriz primeiro para mapa e depois inserir não há problema, alguém pode me dizer qual o erro que cometi?
#include <stdio.h>
#include <stdlib.h>
int **cria_matriz(int n)
{
int **p;
int i;
p=(int**)malloc(n*sizeof(int*));
for(i=0; i<n; i++)
{
p=(int*)malloc(n*sizeof(int));
}
return p;
}
void insere(int**m)
{
m=cria_matriz(2);
m[0][0]=1; m[0][1]=2; m[1][0]=3; m[1][1]=4;
}
int main()
{
int N = 2;
int **mapa;
insere(mapa);
printf("%d %d\n%d %d",mapa[0][0], mapa[0][1], mapa[1][0], mapa[1][1] );
return 0;
}
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.