<分区>
它在 Windows 命令提示符下工作,就像我没有错过 return new_node;
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int value;
struct Node *next;
} Node;
Node* create_node(int value) {
Node *new_node = (Node *) malloc(sizeof(Node));
if (new_node == NULL) return NULL;
new_node->value = value;
new_node->next = NULL;
// no return statement
}
int main(int argc, char *argv[]) {
Node *head = NULL;
// no errors here, head just receives the right pointer
head = create_node(5);
return 0;
}
所以函数 create_node(int)
无论如何都会返回指针。它是如何工作的?
使用 gcc 编译(x86_64-posix-seh-rev1,由 MinGW-W64 项目构建)7.2.0