How to access the value of a pointer within a function in main?

Asked

Viewed 30 times

-2

#include <stdio.h>
#include <stdlib.h>
int *Notas_Baixas(float Vet[],int Total_De_Notas, int *Pont_Numero_De_Notas_Baixas){
    int i;
    *Pont_Numero_De_Notas_Baixas = 0;
    for(i = 0; i < Total_De_Notas; i++){
        if(Vet[i] < 5){
        *Pont_Numero_De_Notas_Baixas ++;
        }
    }
    return &Pont_Numero_De_Notas_Baixas;
}
int main(){
int Numero_De_Alunos, Nota, i;
float *Notas;
printf("Digite a quantidade de alunos da turma : ");
scanf("%d",&Numero_De_Alunos);
Notas = (int *) malloc((Numero_De_Alunos * 2) * sizeof(int)); 
printf("\n");
int Cont_De_Aluno = 1;
for(i = 0; i < (Numero_De_Alunos * 2); i+=2){
    printf("Digite a nota 1 do aluno %d : ", Cont_De_Aluno);
    scanf("%f", &Notas[i]);
    printf("Digite a nota 2 do aluno %d : ", Cont_De_Aluno);
    scanf("%f", &Notas[i+1]);
    Cont_De_Aluno ++;
    printf("\n");
}
for(i = 0; i < (Numero_De_Alunos * 2); i++){
    printf("%f ", Notas[i]);
    printf("\n");
}
int Pega_Nota_Baixa;
int *Numero_De_Notas_Baixas = Notas_Baixas(Notas,(Numero_De_Alunos * 2),&Pega_Nota_Baixa);
printf("\nQuantidade de notas baixas pelo retorno = %d",Numero_De_Notas_Baixas);
printf("\nQuantidade de notas baixas pelo ponteiro = %d", Pega_Nota_Baixa);
return 0;
}

I need to access the Pont_numero_de_notas_low pointer counter inside the Low Notas_main function, only the output is always 0.

  • Your question seems to have some problems and your experience here in Stack Overflow may not be the best because of it. We want you to do well here and get what you want, but for that we need you to do your part. Here are some guidelines that will help you: Stack Overflow Survival Guide in English (short version). If the solution is very simple it is still possible for someone to do so in the comments.

1 answer

1


I need to access the counter pointer Pont_numero_de_low notas_inside of the main notas_low function, only the output is always 0.

The little you implied of your problem, you’re getting a pointer to Pega_Nota_Baixa in function Notas_Baixas, manipulating its value and returning another pointer pointing to it.

Anyway, if this is your problem, you do not need to return the data back once you are sending it as a function parameter. The code below is an example of this.

#include <stdio.h>
#include <stdlib.h>

void Notas_Baixas(int *Pont_Numero_De_Notas_Baixas){
    *Pont_Numero_De_Notas_Baixas = 5;
}

int main() {
    int Pega_Nota_Baixa;
    Notas_Baixas(&Pega_Nota_Baixa);

    printf("%d", Pega_Nota_Baixa);
    return 0;
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.