/*
2- Construa uma função que receba dois parâmetros m e n,
aloque uma matriz de ordem m x n e retorne um ponteiro para
a matriz alocada em tempo de execução. Crie ainda outra
função que receba por parâmetro um ponteiro para matriz e
libere a área de memória alocada. Finalmente, crie um
programa (main) que teste/use as duas funções criadas.
*/
int *aloca(int m, int n);
void liberaEspaco(int **p);
int main(){
setlocale(LC_ALL,"portuguese");
int i=0,j=0,m,n, **matriz;
printf("Informe o número de linhas que deseja em sua matriz:");
scanf("%d",&m);
printf("Informe o número de colunas que deseja em sua matriz:");
scanf("%d",&n);
Question
DiegoMB
Olá a todos.
Gostaria de pedir para alguém me ajudar a corrigir esse código, pois fiz mais não estou conseguindo corrigir o erro que está dando.
erro gerado pelo programa: segmentation fault (core dumped).
Não sei o que estou fazendo de errado mais creio que seja minha linha que tem "matriz = aloca(m,n)"
O programa esta sendo desenvolvimento no
codeblock 13.12
linux xubuntu
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#include<stdlib.h>
#include<stdio.h>
#include<locale.h>
/*
2- Construa uma função que receba dois parâmetros m e n,
aloque uma matriz de ordem m x n e retorne um ponteiro para
a matriz alocada em tempo de execução. Crie ainda outra
função que receba por parâmetro um ponteiro para matriz e
libere a área de memória alocada. Finalmente, crie um
programa (main) que teste/use as duas funções criadas.
*/
int *aloca(int m, int n);
void liberaEspaco(int **p);
int main(){
setlocale(LC_ALL,"portuguese");
int i=0,j=0,m,n, **matriz;
printf("Informe o número de linhas que deseja em sua matriz:");
scanf("%d",&m);
printf("Informe o número de colunas que deseja em sua matriz:");
scanf("%d",&n);
matriz = aloca(m,n);
for(i=0;i<m;i++){
for(j=0;j<n;j++){
printf("Matriz[%d][%d]:",i,j);
scanf("%d",&matriz[j]);
}
}
liberaEspaco(matriz);
system("pause");
return 0;
}
int *aloca(int m, int n){
int *p;
p=(int*)malloc(m*n*sizeof(int));
}
void liberaEspaco(int **p){
free(p);
}
Link to comment
Share on other sites
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.