私は現在C言語を学んでいますが、私はポインタとmalloc()関数の頭を包み込むのに苦労しています。ポインタとmallocを理解する
:私はこのコード例では理解するのに苦労し、いくつかのものがありますchar name[80];
fgets(name, 80, stdin);
island *p_island0 = create(name);
:
island* create(char *name) {
island *i = malloc(sizeof(island));
i->name = strdup(name);
i->opens = "09:00";
i->closes = "17:00";
i->next = NULL;
return i;
}
次にこのように呼ばれています:私の本の例では、私は次の関数が定義されていそう
に割り当てられた変数は0123に割り当てられますは、HEAPに割り当てられた新しいメモリ空間の参照を一時的に保存するだけですか?
island *p_island0 = create(name);
の後、最終的にp_island0
に格納されているものはありますか?malloc()
によって作成されたアドレス、または別のポインタが作成され、前のi
変数の値がp_island0
...にコピーされました。 malloc関数に割り当てられたとき、私の変数に起こる何
ありがとうございましたSouravのことがより明確になっています... – BlackSwing