私のシステムはメモリを持っているが、別の場所に分散している(断片化している)と考えてください。空いている4つの連続したメモリロケーションはありません。このシナリオでは、C言語でサイズ10の文字配列を宣言するとどうなりますか?メモリが制約されたシステム内の配列
3
A
答えて
8
は場合は、「私のシステムは、メモリを持っていますが、別の場所で(断片化)散乱される」heap virtual memoryが断片化されていることを、手段、およびあなたは文字配列を作成することを、手段「サイズ10の文字配列を宣言します」サイズ10のサイズは、stack memory:
char str[10];
であり、配列が正常に作成されます。
あなたはmalloc関数でメモリを割り当てること"サイズの文字配列を宣言10"手段、()(ヒープに割り当てた場合):
char *str2;
str2 = (char*) malloc(10 * sizeof(char));
、その後のmalloc()はNULLを返します。
2
スタックを含むすべてのメモリがこのように断片化されている場合は、非連続スタックをサポートするコンパイラ(またはランタイムシステム)を使用します。この場合、も不連続配列、または基本的には(サブルーチンを呼び出すなど)スタックオーバーフローが発生し、プログラムがクラッシュします。
+0
お返事をありがとうございます。したがって、断片化されたスタックの場合、非連続スタックをサポートするコンパイラが問題を解決するように見えます。 gccは非連続スタックをサポートしていますか?非連続スタックをサポートする良いコンパイラの味を教えてもらえますか? –
関連する問題
- 1. Mathematica&J/Link:メモリの制約?
- 2. プライマリキー制約とテーブルの同じ列に定義された一意制約
- 3. ある範囲内の整数の制約配列
- 4. 制約が表示されたUIButton(500,500)
- 5. 別の配列のMinizinc制約
- 6. PHPメモリが使い果たされました - 配列かsql?
- 7. それに接続された制約の列名(MySQLの)
- 8. ネストされたUIStackViews壊れた制約
- 9. 分子計算のためのメモリ節約システム
- 10. posgresql型配列の列に制約を入れる方法
- 11. OpenGLで予約されたメモリ
- 12. Rの予約メモリは、割り当てられた配列の2倍です。
- 13. 配列に入れ子にされた集約列
- 14. ネストされたeagerのロード制約
- 15. オーバーライドされたジェネリックメソッドの制約
- 16. ネストされた約束が配列にプッシュしない
- 17. 配列内のネストされた約束を待っています
- 18. Excel vba:配列内の配列、ネストされた配列、ギザギザの配列
- 19. 多次元配列がメモリ内にどのように表現されるか
- 20. 初期化された配列と初期化されていない配列が占めるメモリの見方
- 21. Marklogic分配制約
- 22. 配列内の値がループ内に挿入されたとき
- 23. 配列内のリンクされたリスト
- 24. 結合された配列内のスペース
- 25. ネストされた配列内のインデックス
- 26. 予約システムの値の配列を検索する
- 27. ユニーク制約が追加された列の重複値の削除
- 28. 制約レイアウトチェーンパックされた使用
- 29. Javaでプログラミングされた制約
- 30. 推論された型制約
大丈夫です。あなたの返信のためのTHX! –