Segmentation fault 11; einfach verkettete Liste

RomanWPunkt

Grünschnabel
Hallo!
Problem wie folgt:

Ich Habe: (Ausschnitt)
Code:
struct person
{
  char *name;
  struct person *next;
  BOOL first;
};

typedef struct person* node;
BOOL allokieren(node personen)
{

    if((personen = (node) malloc(sizeof(struct person)))==NULL)
    {
      printf(ERROUTMEM);
      allFree(personen);
      return FALSE;
    }

    return TRUE;

}

node insert_right(node list, char *data)
{
  list->name = (char*) malloc(sizeof(strlen(data)+1));
  strcpy(list->name, data);
  
  
  node new_node;
  allokieren(new_node);
  list->next = new_node;
  
  return new_node;
  

}


Im Main lege ich jetzt an: node personen; und rufe die allokieren Funktion auf; soweit so gut!
Aber so ich jetzt einen String einfügen möchte:
Code:
 insert_right(personen, "asdf");
..kommt der Segmentation fault 11
Ich bin ratlos...
HAt Jemand ne Idee?

LG,
ROMAN
 
Hi.

Du mußt der allokieren Funktion einen Zeiger auf die personen Variable übergeben. Ansonsten veränderst du zwar das an die Funktion übergebene Argument, aber das hat keine Auswirkung auf die Variable in main.

Und zeige doch bitte das nächste Mal auch einfach den Code in main.
 
Zuletzt bearbeitet:
Zurück