Ein alter Code, auf den ich gerade gestoßen bin:
MLIST * new_mlist_link()
{
MLIST *new_link = (MLIST * ) malloc(sizeof(MLIST));
new_link->next = NULL;
new_link->mapi = NULL;
new_link->result = 0;
}
Dies wurde aufgerufen, um eine verkettete Liste zu erstellen, aber ich habe bemerkt, dass es keine Anweisung gibt:
return new_link;
Auch ohne die Rückgabeanweisung wurde die Liste dennoch richtig erstellt. Warum ist das passiert?
Bearbeitung: Plattform: Mandriva 2009 64bit Linux 2.6.24.7-server GCC 4.2.3-6mnb1
Bearbeitung: Lustig... dieser Code lief auch erfolgreich auf etwa 5 verschiedenen Linux-Installationen, alle unterschiedliche Versionen/Varianten, sowie auf einem Mac.