2017-02-06 34 views
0

に失敗しました。各構造体内の も、first_namelast_nameの領域を割り当てます。は、私は、この構造体を持っているのrealloc

reallocを使用中にある時点で割り当てが失敗すると仮定した場合、first_namelast_nameの割り当てをすべて処理するのに最も安全でスマートな方法は何ですか?それはまだPerson構造体のrealloctaion失敗後にそれらを解放する方法は?

ありがとうございました。

答えて

2

失敗のreallocは、元のデータを妨害しないので、あなたはまだ

5

のreallocを呼び出すための最良の方法(常にあなたが失敗したのreallocがnullを返しますことを考えると、古いポインタを保持仮定)古いデータを参照することができますこのようなものです:

more_people = realloc(people, count * sizeof(Person)); 
if (!more_people) { 
    // handle failure 
} else { 
    people = more_people; 
} 

あなたがのreallocからの戻りコードをチェックして、安全に失敗を扱うこの方法

関連する問題