この状況でメモリを2回割り当てなければならないのだろうかと思います。 は、例えば: は、私は構造体を持っていることを考慮してください。Cで別の構造体へのポインタをMallocing
struct ErrorCheck {
int returnValue;
struct Nodes * list;
};
struct Nodes {
char * name;
int grade;
struct Nodes * next;
};
し、それらをmallocを機能:上記のように
void buildList() {
struct ErrorCheck * newStruct;
newStruct = malloc(sizeof(struct ErrorCheck));
newStruct->list = malloc(sizeof(struct Nodes));
}
は、私が二回をmallocする必要がありますか?または両方の構造体を使いたい場合は、最初のmallocで十分です。
実際にはnewStruct = malloc(sizeof(struct ErrorCheck));
で十分ですが、いずれの場合も真または偽の場合がありますか?
考えてみましょう:あなたは** 2つの**オブジェクトにアクセスする必要があります。したがって、** one **オブジェクトを十分に割り当てることはできますか?私はそうは思わない。 – Olaf
1つのmallocだけを使用することは技術的に可能ですが、それは多くの努力と複雑さの価値がありません –
注: 'newStruct-> list = malloc(sizeof(struct Nodes))の後、' newStruct-> list - >次に(および他のメンバー)はまだユニット化されていません。 ' – wildplasser