配列の長さが大きい場合

どのようにあまりにも多くあるべき配列要素に対処するには?

スタックメモリ空間が自動的に割り当てられ、解放されたコンパイラが、それはいくつかのローカル変数保つ
スタックは、連続したメモリ領域、窓のスケジュール設定、スタックサイズが2Mであるオペレーティングシステムのサイズです(1M、オペレーティング・システム、ハードウェア、などがありますため、コンパイラ部が設けられていてもよいです)

こうした新しい動的アプリケーションなど、より高度な、ユーザ独自のアプリケーション、スペースの解放をヒープ。私は、リリースを覚えて、私の記憶がリークする責めないで
ヒープメモリ領域が連続していない、コンピュータシステムは、効果的な仮想メモリ(32ビットシステム理論上は4G)のサイズによって制限され
、参照の定義
によると、「Windowsのコアプログラミング第五版」、Windowsのスレッドスタックメモリのデフォルトは1メガバイトであり、ヒープメモリのための、デフォルトのスタックが1メガバイトであるが、しかし、(仮想メモリを使用する)「システムは、デフォルトのスタックプロセスを増加させることができます」

割り当てられたプログラムのコンパイル時に静的な記憶領域は、グローバル変数としてプログラム全体の動作、時が良好であり、。それは素晴らしいです。

トークそんなに、それは重要ではありません。重要:ヒープメモリは、スタックメモリよりもはるかに大きいです。

私たちが質問に戻る前に、なぜ私は偉大な長さの配列を定義することはできませんか?
まず、スペースを無駄にしないように開かれているメモリを取ることはありません。そして、すごい小さなスタックメモリは、あなたは、p点のように、もう一つの大きなスタックメモリを開く、またはあなたのニーズを満たしていません。
そして、どのようにそれを行うことができますか?2つの方法があります。

1.アレイは、グローバル変数として定義されている
SEはメモリとスタック上にないスタティックメモリ割り当てスペース。
最終的にそれを使用するための道を開く前に!私たちは、一般的に、main関数で配列を使用するので、それはメモリを占め、明らかにローカル変数です。その後、我々は、メイン関数(全機能)外部アレイを定義する、それは静的な記憶領域に格納されたグローバル変数です。スタックメモリよりも静的メモリは、ああ、自然に長い列を定義します。

2.動的に割り当てられたアレイ
自体は、スタックメモリとにないヒープメモリ割り当てスペース。
それは、ヒープのメモリ空間、共感、より多くのスペース、長い列に連続していないので、新しいスペースの行で、新しい動的なアプリケーションを使用します。自動的に未使用領域を再利用、スタックメモリとは異なり、ヒープメモリ空間は、プログラムの最後まで存在します。だから、メモリリークを回避するためではなく、リサイクルのための新しい空間から、Deleteキーを使用することを忘れないでください。

おすすめ

転載: www.cnblogs.com/jingjing1234/p/10699164.html