Gostaria de pedir ajuda a vocês pois estou tento dificuldades com funções usando ponteiros. Fiz todo o código, como segui abaixo, porém não estou sabendo passar as informações necessárias para as funções. Se alguém puder corrigir meu código ficaria muito grato.
Programa utilizado para desenvolvimento
CodeBlock 13.12
/*
1-Faça uma função que receba um valor n e crie
dinamicamente um vetor de n elementos e retorne
um ponteiro. Crie uma função que receba um ponteiro
para um vetor e um valor n e imprima os n
elementos desse vetor. Construa também uma
função que receba um ponteiro para um vetor e libere
esta área de memória. Por fim, crie uma função principal
que leia um valor n e chame a função de alocação de
memória. Depois, a função principal deve ler os n
elementos desse vetor. Então, a função principal deve
chamar a função de impressão dos n elementos do vetor
criado e, finalmente, liberar a memória alocada através
da função criada para liberação.
*/
int *aloca(int n);
void mostra(int *p, int n);
void liberaEspaco(int *p);
int main(){
int n,i, *vetor;
printf("Quantos números deseja armazenar no vetor?\n");
scanf("%d",&n);
Question
DiegoMB
Olá a todos
Gostaria de pedir ajuda a vocês pois estou tento dificuldades com funções usando ponteiros. Fiz todo o código, como segui abaixo, porém não estou sabendo passar as informações necessárias para as funções. Se alguém puder corrigir meu código ficaria muito grato.
Programa utilizado para desenvolvimento
CodeBlock 13.12
/*
Edited by DiegoMB1-Faça uma função que receba um valor n e crie
dinamicamente um vetor de n elementos e retorne
um ponteiro. Crie uma função que receba um ponteiro
para um vetor e um valor n e imprima os n
elementos desse vetor. Construa também uma
função que receba um ponteiro para um vetor e libere
esta área de memória. Por fim, crie uma função principal
que leia um valor n e chame a função de alocação de
memória. Depois, a função principal deve ler os n
elementos desse vetor. Então, a função principal deve
chamar a função de impressão dos n elementos do vetor
criado e, finalmente, liberar a memória alocada através
da função criada para liberação.
*/
int *aloca(int n);
void mostra(int *p, int n);
void liberaEspaco(int *p);
int main(){
int n,i, *vetor;
printf("Quantos números deseja armazenar no vetor?\n");
scanf("%d",&n);
vetor = &aloca;
for(i=0;i<n; i++){
printf("Informe números: \n");
scanf("%d",&vetor);
}
mostra(vetor, n);
liberaEspaco(vetor);
system("pause");
return 0;
}
int *aloca(int n){
int *p;
p=(int*)malloc(n * sizeof(int));
if(!p){
printf("memoria insufuciente para alocacao!!");
exit(0);
}
return p;
}
void mostra(int *p, int n){
int i;
for(i=0; i<n; i++, p++){
printf("Posicao %d = %d: \n",i,*p);
}
}
void liberaEspaco(int *p){
free(p);
if(p == NULL){
printf("Espaço liberado!!!!");
}
}
Link to comment
Share on other sites
0 answers 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.