I have a vector of structs with 10 people and I want my registration function to receive only one person at a time.
At the terminal, the first person's registration is done correctly but after I get this "break" line, it jumps alone from the name I would type for age. Why does this occur?
[danielamorais@localhost Desktop]$ ./ex3
Digite o nome:
Daniela
Digite a idade:
18
Digite o nome:
Digite a idade:
Code
#include <stdio.h>
#include <stdlib.h>
#define TAM 10
typedef struct{
char nome[30];
int idade;
} Pessoa;
void cadastrarPessoa(Pessoa *pessoa){
puts("Digite o nome:");
gets((*pessoa).nome);
puts("Digite a idade:");
scanf("%d", &((*pessoa).idade));
}
void lerPessoas(Pessoa *p){
for(int i = 0; i < TAM; i++){
cadastrarPessoa(&p[i]);
}
}
void imprimirVetor(Pessoa *p){
for(int i = 0; i < TAM; i++){
printf("Nome: %s", p[i].nome);
printf("Idade: %d", p[i].idade);
}
}
void main(){
Pessoa *pessoa = (Pessoa *)malloc(sizeof(Pessoa) * TAM);
lerPessoas(pessoa);
imprimirVetor(pessoa);
}