Cで関数を実行した後に割り当てられたメモリを解放する正しい方法は何ですか(malloc経由)?私はそれを解放しなければならないよりも、何らかの形でそれを使用し、それを戻して、メモリを割り当てる必要があります。関数の終了後に変数を "フリー"にする方法はありますか?
char* someFunction(char* a, char* b) {
char* result = (char*)malloc(la + 2 * sizeof(char));
...
return result;
}
'のchar * strの= someFunctionを書くことができます(a、b)は; useitsomehow(文字列); free(str); ' –
これは、ポインタが返されることを意味しています。これは、まったく同じポインタなので、" str "として解放することができますか? – JaxCze
@JaxCze:はい、私はそれを「全く同じポインタ」と呼んでいません。まったく同じ値を持つ異なる(ポインタ)変数です。つまり、同じオブジェクトを指しています。 –