我正在關注一個在線教程,它向我展示了以下(簡化的)代碼:
typedef struct {
int data;
Node* next;
} Node;
int main(){
Node *head;
init(&head);
return 0;
}
該init函式的目的和功能是什么?我自己沒有定義它,但是我也在努力在網上找到檔案。
uj5u.com熱心網友回復:
首先這個宣告
typedef struct {
int data;
Node* next;
} Node;
是不正確的。Node此資料成員宣告中使用的名稱
Node* next;
未定義。
你需要寫
typedef struct Node {
int data;
struct Node* next;
} Node;
至于你的問題,那么在這個宣告中
Node *head;
指標head有一個不確定的值,因為它沒有被初始化。
所以看起來這個函式init只是初始化了指標。您需要通過指向它的指標通過參考傳遞指標。否則函式將處理指標的副本head。取消對指標的參考,您將可以直接訪問head可以在函式內更改的原始指標。那就是函式可以看起來像下面這樣
void init( Node **head )
{
*head = NULL;
}
注意你可以只寫在 main
Node *head = NULL;
無需呼叫函式init。
uj5u.com熱心網友回復:
我認為該init功能將在下一個視頻中實作。我想如果您創建一個新節點(或在這種情況下為結構)以防止一些復活節彩蛋 未定義的行為。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/324913.html
