割り当てられたメモリをCで処理するためのクリーンな方法を考え出すのに苦労しています。次のようなものがあるとします。
void function(int arg) {
char *foo;
foo = (char *)malloc(sizeof(char) * 100);
int i = func1(arg, &foo);
char *bar;
bar = (char *)malloc(sizeof(char) * 100);
int j = func2(&bar);
free(foo);
free(bar);
}
私の問題はそれfunc1
であり、func2
エラーが発生する可能性がexit(1)
あるので、解放する必要がfoo
ありbar
ます。
エラーが発生した場合func1
は、電話するだけでfree(foo)
問題ありません。しかし、エラーが発生した場合は、解放する必要があるため、func2
電話をかけることはできません。これは非常に複雑になる可能性があり、これはメモリを処理する正しい方法ではないと感じています。free(bar)
foo
ここに何か足りないものがありますか?誰かが私に正しい方向を向けることができれば素晴らしいでしょう。ありがとう!