Error printing member of struct: request for member in something not a structure or union

2

I have the following struct :

typedef struct{
    int Numerador ;
    int Denominador ;
} TNumeroRacional ;

In this function I ask the user to enter 2 numerators and denominators to form 2 rational numbers.

void Atribuir (TNumeroRacional* num,TNumeroRacional* num2,int Numerador,int Denominador){
 printf(" a: Atribuir valores para os campos.\n");
 printf("Primeiro numero racional:");
 printf(" Por favor, insira os valores: \n Numerador: ");
 scanf("%d",&num->Numerador);
 printf(" Denominador: ");
 scanf("%d",&num->Denominador);
 printf("Segundo numero racional:");
 printf(" Por favor, insira os valores: \n Numerador: ");
 scanf("%d",&num2->Numerador);
 printf(" Denominador: ");
 scanf("%d",&num2->Denominador);
 printf("Numero racional 1: %d/%d \n",num.Numerador,num.Denominador);
}

When I try to print any element, it appears:

error: request for member 'Numerador' in something not a structure or union
error: request for member 'Denominador' in something not a structure or union

I do not know if my error is in the assignment, but the error message only appears in the printf line.

    
asked by anonymous 02.09.2018 / 00:04

1 answer

0

This problem I did not see happen but it could be because the problem is in the call and this was not put in the question, I had another error that I fixed in printf() final:

#include <stdio.h>

typedef struct {
    int Numerador;
    int Denominador;
} TNumeroRacional;

void Atribuir(TNumeroRacional *num, TNumeroRacional *num2, int numerador, int denominador) {
    printf(" a: Atribuir valores para os campos.\n");
    printf("Primeiro numero racional:");
    printf(" Por favor, insira os valores: \n Numerador: ");
    scanf("%d", &num->Numerador);
    printf(" Denominador: ");
    scanf("%d", &num->Denominador);
    printf("Segundo numero racional:");
    printf(" Por favor, insira os valores: \n Numerador: ");
    scanf("%d", &num2->Numerador);
    printf(" Denominador: ");
    scanf("%d", &num2->Denominador);
    printf("Numero racional 1: %d/%d \n", num->Numerador, num->Denominador);
}

int main(void) {
    int numerador = 0, denominador = 0;
    TNumeroRacional num, num2;
    Atribuir(&num, &num2, numerador, denominador);
}

See running on ideone . And in Coding Ground . Also I placed GitHub for future reference .

    
02.09.2018 / 00:42