我已经开始学习链表概念。我遇到了一些代码。如果有人解释下面的代码会发生什么,这将非常有帮助。我尝试搜索,但是找不到正确的答案。
struct node *new1;
new1 = (struct node*)malloc(sizeof(struct node));
答案 0 :(得分:2)
struct node *new1;
这会在堆栈上分配一个类型为“指向结构节点的指针”的局部变量。
new1 = (struct node*)malloc(sizeof(struct node));
这会分配一个适当对齐的内存块,足以容纳struct node
(可能来自堆),并将new1
设置为指向该新分配的块。块将保持分配状态,直到进程终止或释放该块为止。演员不是必需的。
答案 1 :(得分:0)
malloc
返回的内存最初没有类型。然后,当使用一个指针写入该内存时,该内存(最大为给定类型的大小)将成为一个对象,其类型为已取消引用的指针的类型。