【发布时间】:2016-01-23 01:08:50
【问题描述】:
我有以下结构:
struct node {
int data;
struct node *next;
};
struct node *n1 = malloc(sizeof(struct node));
我不确定如何将 struct 指针的所有指针字段初始化为 NULL 而不会导致任何内存泄漏的可能性?
【问题讨论】:
-
使用
calloc代替malloc。 -
n1->next = NULL;有什么问题? -
@WeatherVane:这将适用于当前的处理器,但它并不完全正确。
-
如果你不喜欢 calloc,你可以在你的 malloc 调用之后加上一个 memset,这将完成同样的事情。
-
@WeatherVane:这是一个棘手的问题:它具有
0的值,因为NULL== 0 是真的,但它的表示可能不是所有位为零我>。我不知道有哪个 CPU 没有,但标准允许。