Прямо сейчас вы обрабатываете как значение параметра NULL, так и возврат NULL из malloc
одинаково.Возможно, вы захотите сделать что-то другое для каждого из них.
В случае, если src
равно NULL, наиболее вероятно, имеет смысл вернуть NULL из функции.Однако, если malloc
возвращает NULL, это обычно означает, что что-то пошло не так, и программа должна exit
.
Node * node_copy(const Node * src) {
Node *nodeCopy;
if (!src)
return NULL;
nodeCopy = malloc(sizeof (Node));
if (!nodeCopy) {
perror("malloc failed");
exit(1);
}
nodeCopy->id = src->id;
nodeCopy->nConnect = src->nConnect;
strcpy (nodeCopy->name, src->name);
return nodeCopy;
}