Hallo Forum!
Ich habe mal eine wohl relativ einfache Frage, aber mich trotzdem verzettelt
Also ich möchte eine Funktion schreiben, der ein Knoten einer DL-Liste übergeben wird, diesen ‚aushängt‘ und in irgend einer Weise den Knoten vor dem gelöschten zurückgibt - und lezteres ist das Problem.
Probiert habe ich:
void f (structNode *pNode)
{
/* static oder nicht static ist wohl nicht
das Thema hier */
structNode *pNodeTemp = pNode->pPrev;
/* […] un-linken […] */
pNode = pNodeTemp;
}
oder:
structNode *f(structNode *pNode)
{
structNode *pNodeTemp = pNode->pPrev;
/* […] */
return pNodeTemp;
}
In beiden Fällen macht mir die lokale temporäre Variable Bauchweh, obwohl die Liste an sich global ist und desshalb der zurückgegebene (?!) Wert wohl gültig sein wird.
Wie mache ich das also richtig (also ANSI ? Etwa mit einem Zeiger-auf-ein-Zeiger und Call-By-Reference ?!
Gruß,
Jo