gpt4 book ai didi

c - struct Node *ptr = malloc(sizeof(*ptr)) 是如何工作的?

转载 作者:行者123 更新时间:2023-12-05 08:46:17 26 4
gpt4 key购买 nike

我是 C 初学者,我在尝试实现链表时遇到了这段代码。

    struct Node *ptr = malloc(sizeof(*ptr));

Node 结构如下所示:

    struct Node {
int data;
struct Node *next;
};

我试图理解第一行。似乎 malloc(sizeof(*ptr)) 已经知道了 ptr 的内容。左侧到底发生了什么,是在调用 malloc 之前发生的吗?

最佳答案

It seems as if malloc(sizeof(*ptr)) already knows the contents of ptr.

其实不然。 sizeof 运算符实际上并不评估其操作数(除非它是可变长度数组),它只是查看其类型。这意味着 ptr 实际上并没有取消引用,因此是一个安全的操作。

关于c - struct Node *ptr = malloc(sizeof(*ptr)) 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69975191/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com