在創建鏈表時,我們創建一個節點結構,它由數據和指向下一個節點的指針組成。後來,當我們做一個函數將元素添加到鏈表時,我們創建一個臨時節點來存儲輸入的數據。鏈接列表節點內存分配
讓我們看看下面的程序 -
#include<stdio.h>
struct node
{
int data;
struct node* link;
}
struct node* root=NULL;
void main(append)
{
struct node* temp;
temp= (struct node*)malloc(sizeof(struct node))
.....
}
我的第一個問題集:
在第11行,我們爲什麼還要提(struct node*)
malloc函數之前?
那是什麼意思?
我的第二個問題集:
如果我們做一個雙向鏈表這將有一個節點結構,其中包括2個三分球(對下一個和前一個節點),將我們還初始化一個指針(用於遍歷結構節點類型的列表)?
在這種情況下是否有不同的方式來初始化指針?
誰告訴你,你需要的是什麼?它甚至非常沮喪。一般來說,絕對不要使用不必要的演員,他們終有一天會落在你的頭上。如果你從你的C書中得到了這些,可以找一個更好的。如果來自一些模糊的YouTube視頻,博客或在線教程:獲取一本好的C書。 – Olaf
請注意,如果您使用C++編譯器編譯C代碼,那麼該投射將是必要的。在C語言中沒有必要僅由C編譯器編譯。另請注意[我是否將'malloc()'的結果轉換爲?](http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc) –
而不是'temp = malloc( sizeof * temp);'簡單 - 不是嗎? – chux