Cerrito 0 Denunciar post Postado Abril 22, 2009 boa noite galera, seguinte apesar de ja ter procurado no forum e na net to com uma dificuldade em trabalhar com uma lista de listas.. ex... vamos supor que tenho as seguintes structs... typedef struct alunos { char nome[TAM]; notas *notas; struct alunos *anterior, *proximo; }alunos; typedef struct disciplinas { char cadeira[TAM]; alunos *aluno; struct disciplinas *anterior, *proximo; }disciplinas; // aqui nessa funca pretendia atrelar um aluno a uma disciplina ja cadastrada... int insertAlunoDisciplina(char aluno[TAM], char cadeira[TAM]) { alunos *novoA = NULL; novoA = ( alunos*) malloc(sizeof(alunos)); disciplinas *novo = inicioCadeiras; novo = ( disciplinas* ) malloc( sizeof( disciplinas ) ); if(novo == NULL) { fprintf(stdout, "NENHUMA DISCIPLINA CADASTRADA..."); return -1; } // percorrendo as disciplinas... while(novo != NULL) { // se encontra cadeira, cadastro aluno... if(searchDisciplina(cadeira)) { fprintf(stdout, "ACHEI A DISCIPLINA..."); insertAluno(aluno); } else fprintf(stdout, "NAOOOO ACHEI A DISCIPLINA..."); novo = novo->proximo; } } como vcs podem notas ambas sao suplamente encadeadas... mas minha duvida eh a seguinte, como fazer pra que quando eu criar uma cadeira possa atrelar uma aluno a ela... consigo criar as disciplinas, os alunos mas em listas separadas, nao saquei como faco pra apontar um determinado aluno pra lista disciplina... alguem pode me dar uma help, pode ser com uma explicacao ou mesmo um trecho de codigo mesmo que generico que faca um insert em uma lista que um dos campos seja um ponteiro pra um outra lista... se alguem puder me ajudar agradeco a todos... obrigado... ps: estou tentando a seguinte logica... primeiro cadastro as disciplinas... isso ta ok... depois disso crio os alunos, pedindo antes em que disciplina deseja criar, encontro a disciplina e nesse ponto empaquei, nao consigo atrelar o aluno a essa disciplina ja criada... resumindo seria essa minha duvida... Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Abril 22, 2009 Tem um tópico aqui no fórum que aparecia uma dúvida parecida, vou procurar e depois posto o link, as vezes te ajuda. Vamos lá... eu coloquei o seu código em: http://codepad.org/NOyVuxTR assim fica mais fácil de você encontrar os erros. na linha 21/22, o que é InicioCadeiras?? você primeiro atribui um valor ao ponteiro, depois aloca espaço para ele? isso está errado. Primeiro cheque se "inicioCadeiras" é nullo, se for, há necessidade de alocar espaço caso contrário, só adicione no final. Se você não tava entendendo a logica, eu fiz um códigozinho exemplo pra você. http://codepad.org/KifgpBOP Abraços http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Cerrito 0 Denunciar post Postado Abril 22, 2009 Victor, vlw pela ajuda, vou dar uma bela olhada no seu exemplo, por enquanto soh posso lhe agradecer... abracos Marcio Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Abril 23, 2009 Victor, vlw pela ajuda, vou dar uma bela olhada no seu exemplo, por enquanto soh posso lhe agradecer... abracos Marcio Magina! Tamos aqui pra isso! =D Se por acaso não entender qualquer coisa, avisa que eu comento mais o código. Deixei poucos comentários, pois suponho que você ja tenha certa experiência com a linguagem C e ponteiros. Abraços! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites