割り当てられたメモリを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
ここに何か足りないものがありますか?誰かが私に正しい方向を向けることができれば素晴らしいでしょう。ありがとう!