当使用malloc更改结构的内存大小时

  • 本文关键字:内存 小时 结构 malloc c
  • 更新时间 :
  • 英文 :

struct node *add_to_list (struct node *list, int n)
{
struct node *new_node;
new_node = malloc(sizeof(struct node));
}

在此代码中,new_node在"结构节点"结构中定义,因此new_node具有结构节点的内存大小

但在第四行中,new_node的内存大小被重新定义

但是当执行malloc(sizeof(struct node((时,我认为新节点的大小没有变化,因为新节点的内存大小已经与"结构节点"内存大小相同

那么为什么这段代码在第 4 行

这定义了一个指针:

struct node *new_node;

指针的大小为 32 位或 64 位,具体取决于体系结构。

new_node = malloc(sizeof(struct node));

这实际上为该结构的大小分配了node内存。

顺便说一句,强烈建议检查malloc()调用的结果是否NULL,否则以后可能会遇到非常讨厌的问题。

以防万一您想知道,例如,这会创建node(不是指针(:

struct node new_node;

请注意缺少星号*符号。

相关内容

最新更新