[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Re: Ep4 Urgente!



>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