Einzelnen Beitrag anzeigen
Alt 20.05.2001, 14:20   #1
SNo0py
Inventar
 
Registriert seit: 08.02.2000
Beiträge: 1.696


Frage Adressrückgabe in C

Ich hab da ein kleines Problem:

Die Funktion insert sollte den Zeiger ptr_first so verändern können, dass auch in Main bekannt ist, wo dieser hinzeigt. Aber in der Funktion doit wird schon nur 0x00000000 zurückgegeben -> kann mir da wer helfen?!?!

Danke!!

======================================

typedef struct _adresse
{ [...]
struct _adresse *ptr_next; // Zeiger auf nächsten Datensatz
}Adresse;

int main()
{
[...]
Adresse *ptr_first = NULL; // Zeiger auf das 1. Element
[...]
doit(taste, ptr_first);
[...]
}

void doit(char taste, Adresse *ptr_first)
{
Adresse tmp;

switch(taste)
{
[...]
case 'e':
case 'E': // Datensatz einlesen
einlesen(&tmp); // Einlesen funzt
insert(ptr_first, &tmp); // ptr_first ist immer NULL!!!!
break;
default: break;
}
}

void insert(Adresse *ptr_first, Adresse *ptr_tmp)
{ // Einfügen in Liste (an richtiger Position!!)
Adresse *ptr_neu; // Zeiger auf neuen Datensatz
Adresse *ptr_akt = ptr_first;
Adresse *ptr_old = ptr_first;
ptr_neu = malloc(sizeof(Adresse)); // Speicher reservieren

[...]

// Zeiger verbiegen
ptr_neu->ptr_next = NULL;
ptr_first = ptr_neu;
}
____________________________________
Sex is like hacking. You get in, you get out, and you hope you didnt leave something behind that can be traced back to you.
SNo0py ist offline   Mit Zitat antworten