C / C ++のメモリ割り当て

DESCRIPTIONは、サンプルコードを使用して割り当て 

 

/ * 
 *スタック領域(スタック):
 *関数のパラメータ値、ローカル変数、等
 *コンパイラによって自動的に割り当て及び解放
 *スタックデータ構造と同様に動作
 *ヒープ(ヒープ):
 *一般によりプログラマーの割り当てとプログラマが解放しない場合、リカバリプログラムの終了時に、オペレーティング・システムによって提供されてもよい、リリース
 *リストと同様の分布
 *ヒープ内のデータ構造は、2つの異なるものであることに注意してください
 *グローバル領域(静的領域)(静的):
 *グローバル変数および静的変数はに一緒に格納されている
 *グローバル変数と領域内の静的変数、初期化されていないグローバル変数と他の隣接する領域に初期化されていない静的変数を初期化する
 プログラムの終了後にシステムによって放出を* 
 *テキスト定常領域:
 *定数文字列がここに配置されている
 *プログラムシステムの終了によって解放
 *プログラムコード領域:
 *身体機能バイナリコードを格納する
* / 

の#include <STDLIB.H> する#include <stdio.hに> する#include < ストリング .H> int型 A = 0; // グローバル初期化領域 のchar *のP1; // グローバル・ゾーン初期化されていない 整数のmain() { int型の B; // スタック チャー S [] = " ABC " ; // スタック のchar *のP2; // スタック、 CONST のchar *のP3 = " 123456 " ; // 定常領域で123456、スタック上のP3 静的 INT C = 0 ; // グローバル(静的)ゾーン初期化 P1 =(チャー *)のmalloc10); //10バイトのスタック領域に割り当てられた領域 P2 =(チャー *)のmalloc20である); // 20バイトの領域割り当てられたヒープ領域である strcpyの(P1、" 123456 "); // 定常領域で123456、コンパイル最適化は、同じ位置P3を指してもよいです }

 

おすすめ

転載: www.cnblogs.com/etangyushan/p/11204912.html