• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

filipemm

Possível problema com memória

2 mensagens neste tópico

Boas..

Tenho uma função para criar um novo cliente numa estrutura clientes (listas ligadas):

void novo_cliente (cliente *firstC)
{
cliente *node = firstC;

if (node == NULL)
{
	node = (cliente *) malloc (sizeof (cliente));
	node->next = NULL;
	firstC = node;
}
else
{
	while (node->next != NULL)
		node = node->next;
	node->next = (cliente *) malloc (sizeof (cliente));
	node = node->next;
	node->next = NULL;
}

system ("cls");
printf ("...::: NOVO CLIENTE :::...\n\n");
printf ("Nome: ");
scanf ("%s", node->nome);
printf ("Morada: ");
scanf ("%s", node->morada);
printf ("Telefone: ");
scanf ("%ld", &node->telefone);
printf ("E-mail: ");
scanf ("%s", node->email);
menu (firstC);
}

O código é compilado e executado correctamente!

Consigo criar um cliente mas o problema é que quando tento criar o segundo cliente aparece um daqueles erros para enviar o relatório de erros para a Microsoft..

Portanto penso que o problema estará na alocação de memória dentro do else, mas não vejo nenhum erro :X

Any help?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Problema resolvido!

else
{
	while (node->next != NULL)
		node = node->next;
	node->next = (cliente *) malloc (sizeof (cliente));
	node = node->next;
	node->next = NULL;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora