2017-07-22 10 views
-2

私は上記を使用して2次元配列を生成しています。それはうまく動作しますが、valgrindはメモリリークがあることを私に伝えています。ここで思い出を解放する適切な方法は何ですか?ポインタを使用した2D配列 - メモリリーク

+1

あなたがC –

+0

にcalloc' 'の戻り値をキャストするべきではありませんメモリの割り当てを逆にするだけです。 –

+0

@EdHealコメントをいただきありがとうございます。申し訳ありませんが、私はあなたが正確に何を意味するか分からない。だからフリー(sol)、フリー(m)、forループ{free((m + i))}を行うだけですか? –

答えて

1

メモリを解放するには、メモリを割り当てるときとはまったく逆の操作を行う必要があります。その後、

for (int i = 0; i < n_samp; i++){ 
    free(*(m+i)); 
} 

、残りを行います:

あなたがループinsid作成した動的な要素を持つスタート

free(m); 
free(sol); 
+0

答えをありがとう。残念ながらそれは私がやったことです(上記のコメントは申し訳ありません)。 –

+0

@DavidYoungまだメモリリークがありますか? – Rabbid76

+0

はい。 Valgrindはまだ私に 'calloc'のエラーメッセージを与えています。 –

関連する問題