-1
I dynamically allotted a vector of structures with qtdeFuncionarios
positions within a if
, but now I need to use it within another conditional structure and the compiler accuses scope problem. How to proceed?
#include <stdio.h>
#include <stdlib.h>
typedef struct {
char *nome;
char *email;
int idade;
} Funcionario;
int main() {
while(1){
int i, opcao, qtdeFuncionarios;
printf("1.Cadastrar funcionario\n");
printf("2.Listar funcionarios\n");
printf("3.Editar dados de funcionario\n");
printf("4.Excluir funcionario\n");
scanf("%d", &opcao);
if (opcao == 1) {
printf("Quantos funcionarios deseja cadastrar? ");
scanf("%d", &qtdeFuncionarios);
Funcionario *funcionarios = malloc(qtdeFuncionarios * sizeof(Funcionario));
for ( i = 0; i < qtdeFuncionarios; i++) {
funcionarios[i].nome = malloc(35);
printf("\nDigite o nome do funcionario %d: ", i);
scanf("%34s", funcionarios[i].nome);
printf("\n%s", funcionarios[i].nome);
funcionarios[i].email = malloc(35);
printf("\nDigite o email do funcionario %d: ", i);
scanf("%34s", funcionarios[i].email);
printf("\n%s", funcionarios[i].email);
printf("\nDigite a idade do funcionario %d: ", i);
scanf("%d", &funcionarios[i].idade);
printf("\n%d", funcionarios[i].idade);
}
}
else if(opcao == 2){
}
else if(opcao == 3){
printf("Digite o numero do funcionario que deseja editar: ");
int numero;
scanf("%d", &numero);
printf("Digite o novo nome: ");
scanf("%34s", funcionarios[numero].nome);
printf("Digite o novo email: ");
scanf("%34s", funcionarios[numero].email);
}
}
return 0;
}
Did the answer solve your question? Do you think you can accept it? See [tour] if you don’t know how you do it. This would help a lot to indicate that the solution was useful for you. You can also vote on any question or answer you find useful on the entire site (when you have 15 points).
– Maniero