Olá Durub, Obrigada! Arrumei o erro eu estava declarando 2 vezes o struct cadastro cad e o struct cadastro* p. Estou apontando o p para cad para inicializar o ponteiro. Agora está funcionando, porém estou continuando o cadastro e quero fazer várias fichas com todos os campos que eu tenho. No caso, acho que seria só criar assim: struct cadastro cad[15]; Minha dúvida é, como faço para acessar cada campo de cada cadastro? Tentei algo como gets(p[0] -> nome); Mas isso não é possível. Como devo acessar? O código atualizado segue abaixo, desculpe por não usar o codebox, mas ele não está funcionado para mim. bj, Eliane #include<stdio.h> #include<conio.h> struct cadastro /* cria a estrutura cadastro e define suas variaveis */ { char nome[30]; char cargo[20]; char sexo; char cidade [30]; char estado [2]; int codigo; int telefone; int cpf; int idade; int salario; }; struct cadastro cad; /* cria a variavel global cad do tipo estrutura com todos os campos definidos em cadastro */ struct cadastro *p=&cad; /*cria um ponteiro para a estrutura e inicializa com o endereco de cad*/ void listagem(struct cadastro *p) { printf("Nome:%s", p -> nome); printf("\nPressione ENTER para continuar"); getch(); main(); } void inclusao(void) { printf("Digite o nome completo: "); fflush(stdin); gets(p -> nome); printf("Nome cadastrado com sucesso, pressione ENTER para continuar."); getch(); main(); } void exclusao(void) { printf("EXCLUSAO."); getch(); } void alteracao(void) { printf("ALTERACAO."); getch(); } void menu(int opcao) { switch(opcao) { case 1: inclusao(); break; case 2: exclusao(); break; case 3: alteracao(); break; case 4: listagem(p); break; } } main() { int opcao; clrscr(); printf("CADASTRO\n"); printf("============================\n\n"); printf("\t\t 1 INCLUSAO\n\t\t 2 EXCLUSAO\n\t\t 3 ALTERAR\n\t\t 4 LISTAGEM\n\t\t 5 SAIR\n\n"); do { printf("Qual a sua opcao? "); scanf("%d", &opcao); if ((opcao < 1) || (opcao > 5)) { printf("Opcao invalida. "); } else { menu(opcao); } } while ((opcao < 1) || (opcao > 5)); return 0; }