c - c中的结构内存分配和malloc()

标签 c malloc

当我在链表中​​定义一个节点时,我遇到了这种困惑。 考虑一下,

struct node *current = head;

这里head是指向头节点的指针。另一种方法是,

struct node *current = (struct node*)malloc(Sizeof(struct node));
current = head;

两者的工作原理相同,那么它们之间有什么区别? 第一种情况如何分配内存?

最佳答案

不同之处在于第二个版本调用了malloc(sizeof(struct node))并丢失了返回的指针;即这是内存泄漏。您可以通过执行以下操作获得相同的效果:

malloc(sizeof(struct node));
struct node *current = head;

关于c - c中的结构内存分配和malloc(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46269354/

相关文章:

c - 我可以在 X 之外捕获的这种级别的屏幕捕获程序

c 一个数组到另一个数组的大小

c - 如何将struct char写入文件

在C中创建一个二进制文件

c - malloc 内部函数导致 SIGSEGV

c++ - 打印结构的结构数组会导致意外的执行错误?

c - C中的内存分配/释放

c++ - 在函数内部 malloc 一个全局变量是错误的吗?

c - 如何对字符串前面的数字求和

c - 如何在 C 语言的 Windows 上安装访问冲突错误的信号处理程序?