[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
Re: Ep4 Urgente!
- Subject: Re: Ep4 Urgente!
- From: "Rubens Altimari" <rubens@bcc2000.net>
- Date: Fri, 6 Jul 2001 14:19:24 -0300
>NULLitem->pal = "00000000";***
*** pq esta linha da segmentation fault?
Pelo visto, já que você está usando o operador "->" em NULLitem (que é, portanto, um pointer), e considerando que esta é a primeira rotina a ser executada (STinit), faltou inicializar NULLitem! Experimente assim:
void STinit()
{
NULLitem = (Item*) malloc(sizeof(Item)); // ou NEWitem, ou seja lá como for que você inicializa um Item
if (!NULLitem) { printf("Pau!"); return; } // só para testar
NULLitem->pal = "00000000";***
head = NEW(NULLitem, 0, 0, -1);
head->l = head; head->r = head; }
Mas, dependendo de como estiver seu código, o mais fácil (e correto) seria instanciar NULLitem no módulo correspondente ao Item. Por exemplo:
Item.h
=====
extern Item NULLitem;
Item.c
=====
Item NULLitem;
ST.c
====
void STinit() {
NULLitem.pal = ... // note o "." no lugar de "->"
Rubens
- References:
- Ep4 Urgente!
- From: Alfredo Roberto Junior <alfredo@linux.ime.usp.br>