11、動的メモリ割り当てのmalloc /無料

動的なメモリ割り当て

メモリ・アプリケーションと解放を達成するには、2つの関数:malloc関数/無料。

malloc関数メモリアプリケーション

する#include <STDLIB.H>
 int型のmain()

{ 
    int型 * P =(INT *)はmalloc100 * 4); // アプリケーション100 * 4バイト

    のためのINT I = 0 ; I < 100 ; I ++ ){ 
        P [I] = I * I;    //は、このメモリ使用

    } 
    戻り 0 ; 
}

 

スペースのサイズをバイト単位で適用する、ことを注意、必要なバイト数の合計を計算するための責任を負うアプリケーション自体。例えば、100 INTを格納するために、必要なスペースの大きさは400バイトであるべきで、サイズを指定するために使用されるのmalloc(100 * 4)またはmalloc関数(100 *はsizeof(INT))とすることができます。

アプリケーションメモリの部分を指してmalloc関数の戻り値は、アプリケーションのニーズは、指定されたデータ型にそれを強制します。このメモリアレイと同じの使用の間には本質的な違い。
    無料リリースメモリ

書式#include <stdlib.h>に含まれ
 、ボイド フリーの無効 * PTR);

 

例:シチズンで表現市民は、車と車を表明しました。最初のA車のない市民が、将来に車を持っていることがあります。

する#include <STDLIB.H> 

する#include < 文字列・H> 構造体の車{ チャーメーカー[ 32 ]; // メーカーINT価格;       // 価格
}; 構造体市民{ チャー名[ 32 ];   // 名前のintのdeposite。    // 預金 *車;        // NULLは何の車を示していないとき
}; // オブジェクトの定義:車は開始されませんでした。
Shaofa市民 = { " liyanyan "100 、NULL}; //



    

    




    

    



 




 

その後、彼は車を買うことができました。

を購入(シチズン* 所有者){ 

    // オブジェクトの作成

    の車を * CAR =(カー*)はmallocはsizeof (車)); 

    strcpyの(CAR - >メーカー、" BMW " ); 

    CAR。 - >価格= 10 ; 

    // このオブジェクト(または、むしろポインタを覚えて)保存

    所有者 - > =の車の車;    // が付いている車

    の所有者。 - >のdeposite -車の- =>価格;   // お金が消えていた

} 

// ある日、この車それは廃棄されます。

ボイド廃棄(市民*所有者、市民* OTHER){ 
 * =所有者- CAR> CAR。

    CAR - >価格* =。0.5 ;   // 半額セール
 - > = CARのCAR;    // 他の人が車の持っている

    所有者を - > CAR- + =>ののdeposite 価格; 

    // 無料ではない(CAR); // 解放できませんこの車は他人の手の中にある

    所有者 - >車= NULL;   // カーフリーの状態に戻っ

}

 

おすすめ

転載: www.cnblogs.com/QLEO/p/12286027.html