Fala pessoal! Comecei a dar uma brincada com C para desenvolver mais a lógica e criei algo extremamente simples usando Struct, porém, notei algo que nunca tinha visto e busquei na documentação, mas não encontrei respostas. Acontece que quando eu crio um código solicitando a quantidade de cadastros e chamo a função que coleta os dados, ele solicita o NOME e CPF em seguida (anexo), mas caso eu tire o trecho de código que pergunta quantas pessoas eu desejo cadastrar, o erro deixa de ocorrer.
Só pra deixar claro, sou bem leigo em C. Acredito que seja algo simples, mas não consegui achar uma resposta.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct pessoa{
char nome[40];
char cpf[15];
int idade;
float salario;
}Pessoa;
// Coletando as informações da pessoa
Pessoa coleta_dados(Pessoa *p) {
printf("Digite seu nome: ");
fgets(p->nome, 50, stdin);
printf("Digite seu cpf: ");
fgets(p->cpf, 50, stdin);
printf("Qual o seu salário: R$");
scanf("%f", &p->salario);
printf("Digite sua idade: ");
scanf("%i", &p->idade);
return *p;
}
int main(void) {
// Com esse código acontece o erro, mas caso eu o tire o erro não ocorre
int x;
printf("Quantas pessoas deseja cadastrar? ");
scanf("%d", &x);
// ---------------------------------------------------------------------
Pessoa pessoas[2];
coleta_dados(&pessoas[0]);
printf("%s", pessoas[0].nome);
printf("%s", pessoas[0].cpf);
printf("R$%.2f\n", pessoas[0].salario);
printf("%i", pessoas[0].idade);
return 0;
}
```![Screenshot_12|399x138](upload://x6HQp8NaWHlD17WlQqotqyuXXQk.png)