に失敗しました。各構造体内の も、first_name
とlast_name
の領域を割り当てます。は、私は、この構造体を持っているのrealloc
realloc
を使用中にある時点で割り当てが失敗すると仮定した場合、first_name
とlast_name
の割り当てをすべて処理するのに最も安全でスマートな方法は何ですか?それはまだPerson
構造体のrealloctaion失敗後にそれらを解放する方法は?
ありがとうございました。
に失敗しました。各構造体内の も、first_name
とlast_name
の領域を割り当てます。は、私は、この構造体を持っているのrealloc
realloc
を使用中にある時点で割り当てが失敗すると仮定した場合、first_name
とlast_name
の割り当てをすべて処理するのに最も安全でスマートな方法は何ですか?それはまだPerson
構造体のrealloctaion失敗後にそれらを解放する方法は?
ありがとうございました。
失敗のreallocは、元のデータを妨害しないので、あなたはまだ
のreallocを呼び出すための最良の方法(常にあなたが失敗したのreallocがnullを返しますことを考えると、古いポインタを保持仮定)古いデータを参照することができますこのようなものです:
more_people = realloc(people, count * sizeof(Person));
if (!more_people) {
// handle failure
} else {
people = more_people;
}
あなたがのreallocからの戻りコードをチェックして、安全に失敗を扱うこの方法