Pesquisar na Comunidade
Mostrando resultados para as tags ''passagem de parametro''.
Encontrado 1 registro
-
Problema com passagem de parametro de matriz com lista encadeada
uma questão postou Kleber Neves C, C++
Bom dia pessoa ! Sou novo no fórum, acabei de me registrar e gostaria de pedir uma ajuda a vocês, pesquisei no fórum e não encontrei. Preciso inserir valores em uma lista encadeada, mas está dando erro quando chega nas matrizes. O Código é um pouco grande, mas nem está terminado, buguei nessa parte e não encontro o erro. O erro acontece no procedimento inserir fim. #include<stdio.h> #include<stdlib.h> #include<string.h> struct cadastro { //Dados cadastrais do colega char nome[50]; char endereco[100]; char cidade[50]; char estado[30]; char idade[10]; char tresidencial[12]; char tcelular[12]; char email[30]; //Dados cadastrais do filho int qtdfilhos; char fnome[10][50]; char fnacionalidade[10][15]; char fidade[10][10]; char fsexo[10][15]; struct cadastro *prox; }; typedef struct cadastro cad; void inserirFim(cad **paramcad, char parnome[], char parendereco[], char parcidade[], char parestado[], char paridade[], char partresidencial[], char partcelular[], char paremail[], int parqtdfilhos, char parfnome[][50], char parfnacionalidade[], char parfidade[], char parfsexo[]) { cad *ncad;//criando ponteiro nova lista. ncad=(cad*)malloc(sizeof(cad));//alocando o espaço em memória strcpy(ncad->nome, parnome); strcpy(ncad->endereco, parendereco); strcpy(ncad->cidade, parcidade); strcpy(ncad->estado, parestado); strcpy(ncad->idade, paridade); strcpy(ncad->tresidencial, partresidencial); strcpy(ncad->tcelular, partcelular); strcpy(ncad->email, paremail); ncad->qtdfilhos = parqtdfilhos; strcpy(ncad->fnome, parfnome); strcpy(ncad->fnacionalidade, parfnacionalidade); strcpy(ncad->fidade, parfidade); strcpy(ncad->fsexo, parfsexo); ncad->proximo = NULL; if(*paramcad == NULL) { *paramcad = ncad;//se for insere a nova lista no final } else { cad *cadaux; cadaux = *paramcad; //coloca a lista atual na lista auxiliar while(cadaux->proximo != NULL) { //e vai percorrendo a lista ate encontrar o final ou seja NULL cadaux = cadaux->proximo; //enquato não acha o final ela fica colocando "as estruturas listas" na lista temporaria }//obviamente uma ora ela vai chegar no final da lista ou seja nesta linha cadaux->proximo = ncad;//como ele já esta no final da fila ele so adiciona a nova lista } } void recebe(cad **paramcad) { int x; printf("\nEste colega possui filho(s)?\n1 - Sim\n2 - não\n"); scanf("%d", &x); if(x==1) { fflush(stdin); char nome[50]; char endereco[100]; char cidade[50]; char estado[30]; char idade[10]; char tresidencial[12]; char tcelular[12]; char email[30]; //Recebe os dados cadastrais do colega printf("\nDigite o nome: "); gets(nome); // inserirFim(&cadastro,tmp); printf("Digite o endereco: "); gets(endereco); printf("Digite a cidade: "); gets(cidade); printf("Digite o estado: "); gets(estado); printf("Digite a idade: "); gets(idade); printf("Digite o telefone residencial: "); gets(tresidencial); printf("Digite o telefone celular: "); gets(tcelular); printf("Digite o email: "); gets(email); system("cls"); int qtdfilhos; char fnome[10][50]; char fnacionalidade[10][15]; char fidade[10][10]; char fsexo[10][15]; system("cls"); printf("\nDigite a quantidade de filhos: "); gets(qtdfilhos); fflush(stdin); int f; f=qtdfilhos; while(y != f) { printf("\nDigite os dados cadastrais do(s) filho(s)\n\n"); printf("Digite o nome do %d filho: ", y+1); gets(fnome[y]); fflush(stdin); printf("Digite a nacionalidade: "); gets(fnacionalidade[y]); fflush(stdin); printf("Digite a idade: "); gets(fidade[y]); fflush(stdin); printf("Digite o sexo: "); gets(fsexo[y]); fflush(stdin); system("cls"); y++; } inserirFim(paramcad,nome, endereco,cidade, etado, idade, tresidencial, tcellar, email, qtdfilhos, fnome, fnacionalidade, fidade, fsexo); } if(x==2) { fflush(stdin); char nome[50]; char endereco[100]; char cidade[50]; char estado[30]; char idade[10]; char tresidencial[12]; char tcelular[12]; char email[30]; //Recebe os dados cadastrais do colega printf("\nDigite o nome: "); gets(nome); // inserirFim(&cadastro,tmp); printf("Digite o endereco: "); gets(endereco); printf("Digite a cidade: "); gets(cidade); printf("Digite o estado: "); gets(estado); printf("Digite a idade: "); gets(idade); printf("Digite o telefone residencial: "); gets(tresidencial); printf("Digite o telefone celular: "); gets(tcelular); printf("Digite o email: "); gets(email); system("cls"); cidade cidade cidade inserirFim(paramcad,nome, endereco,cidade, etado, idade, tresidencial, tcellar, email); } if(x!= 1 && x!= 2) { printf("Opcao invalida!\n Escola uma opcao entre 1 e 2"); } } main() { int op=0; int subop=0; cad *cadastro; cadastro=NULL; while(op!=6) { system("cls"); printf("\nMenu Principal\n"); printf("\n1 - Cadastrar um novo colega e/ou filho\n2 - Mostrar os colegas cadastrados\n3 - Excluir um colega e/ou filho\n4 - Localizar os dados de um colega\n5 - Salvar as informacoes em arquivo\n6 - Sair\n"); printf("\n"); scanf("%d",&op); switch (op) { case 1: system("cls"); printf("\nMenu de Cadastramento\n\n1 - Cadastrar um colega\n2 - Cadastrar um filho\n\n"); scanf("%d", & subop); system("cls"); printf("\n"); if(subop==1) { printf("\n"); system("cls"); printf("Preencha os dados cadastrais para seu colega:\n"); recebe(&cadastro); } if (subop==2) { printf("\n"); printf("Preencha os dados cadastrais para seu filhos:\n"); system("pause>>null");//será removido quando todo o programa estiver concluido } if(subop != 1 && subop!=2) { printf("\n"); printf("Opcao invalida\nSelecione 1 ou 2"); system("pause>>null");//será removido quando todo o programa estiver concluido } break; case 2: system("cls"); break; case 3: printf("Menu de Exclusao\n1 - Exlcuir um colega\n2 - Excluir um filho"); scanf("%d", & subop); printf("\n"); if(subop==1) { } if (subop==2) { } if(subop != 1 && subop!=2) { } break; case 4: break; case 5: break; case 6: op=6; break; default: printf("\nOpcao invalida!\nSelecione uma opcao de 1 a 6"); system("pause>>null"); } } }-
- lista encadeada
- passagem de parametro
- (e %d mais)