私はリンクリストの配列を作成する必要があります(写真のように)、これは私がこれまでに作ってきたものである:Cのリンクされたリストの配列:初期化と挿入?
typedef struct Node {
int data;
struct Node *next;
} Node;
int main(void) {
Node* link[5];
for(int q = 0; q < 5; q++) {
link[q] = malloc(sizeof(struct Node));
link[q] = NULL;
}
}
を私はCにリンクされたリストを使用していたので、それはしばらくしていますだから、私は多くの構文を忘れてしまい、リンクされたリストをコーディングするときに何が起こるのかを視覚化するのが難しいです。私が誤解していないなら、私のコードでmallocを呼び出すと、まだ何も入っていないNodeを作成していますか?
NULLを指すように初期化します。そして、私はこれをしました
link[q] = NULL;
私は右のこれはメモリ内でどのように見えるのですか?
| 1 | - > NULL
2 | - > NULL
| 3 | - > NULL
次の問題は、データをリンクリストに挿入することです。
(写真を参照):私が言う配列の3番目のインデックスに別の要素を挿入する場合([3] - > D - > NULL)
これは正しいでしょうか?
Node* newNode = link[3];
newNode->data = 1;
link[3] = newNode;
ありがとうございます!
挿入が無効です。再びメモリリークが発生します。私の答えを見てください。 –
ありがとう!できるだけ早く編集します:) – Katrina
なぜメモリリークが発生するのですか? – Katrina