Какой-то старый код, с которым я только что столкнулся:
MLIST * new_mlist_link()
{
MLIST *new_link = (MLIST * ) malloc(sizeof(MLIST));
new_link->next = NULL;
new_link->mapi = NULL;
new_link->result = 0;
}
Это вызывалось для создания связанного списка, однако я заметил, что нет инструкции:
return new_link;
Даже без возвращаемого утверждения список по-прежнему создается правильно. Почему это произошло?
Изменить: Платформа: Mandriva 2009 64bit Linux 2.6.24.7-сервер GCC 4.2.3-6mnb1
Edit: Funny... этот код также успешно работал примерно на 5 различных установках Linux, всех разных версиях/ароматах, а также на Mac.