1

cのような言語では、割り当てた後にメモリを解放する必要があることを知っています。(私はJavaから来ています)、これに関していくつか質問があります:

  1. 私がやっているとき:

    int array[30];      
    

    (つまり、サイズ 30 の整数の配列を作成する) これは行うことと同じですか?

    int array[] = malloc(sizeof(int)*30);
    
  2. 最初の質問の順序として、関数内に配列を作成する場合 (つまり、ファイル全体ではなく関数に対してローカル)、作成した関数内でこの配列のメモリを解放する必要がありますか? ? (作成されたすべての配列の参照を main() 関数に戻すことができないため、それを解放する他の方法はありません)。

要するに、(関数の内外で) 作成されたオブジェクト/プリミティブのメモリをいつ解放する必要があるかを正確に知りたいのです。

4

5 に答える 5

0

基本的mallocにメモリをヒープに割り当て、スコープを失った後に解放されません。したがって、 を使用して割り当てられたメモリは、 を使用してmalloc解放する必要がありますfree

于 2013-08-19T09:04:58.263 に答える