c - 当动态内存分配显式转换为结构类型时,到底会发生什么?

标签 c

我已经开始学习链表概念。我遇到过一些代码。如果有人解释下面的代码会发生什么,那将会非常有帮助。我尝试过搜索,但找不到正确的答案。

 struct node *new1;
 new1 = (struct node*)malloc(sizeof(struct node));

最佳答案

struct node *new1;

这会分配一个局部变量,可能在堆栈上,类型为“指向结构节点的指针”。

new1 = (struct node*)malloc(sizeof(struct node));

这会分配一个适当对齐的内存块,该内存块足够大,可以容纳一个结构节点(可能来自堆),并将new1设置为指向该新分配的 block 。该 block 将保持分配状态,直到进程终止或 block 被释放。 Actor 阵容不是必需的。

关于c - 当动态内存分配显式转换为结构类型时,到底会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56759412/

相关文章:

c - 摆脱 "if"- boolean 逻辑

c - 如何在 C 中转换一个 void 函数指针?

c - 以相同格式打印数据的更好方法

c - 套接字发送客户端-服务器文件

C:自动创建给定数量的变量

c - C 可变参数函数与 Fortran 的互操作性

c - 定时器计数器为0并制作真正的第二个问题

c - 从文件中读取单词(不是字符),C 中没有空行 - 不重复

c - c中的多线程环境

c - 如何正确退出子进程?