Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cerrito

lista de listas - C

Recommended Posts

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.