忍者ブログ

ゲーム作成状況を載せて行きますよ。 いつ完成する事やら・・・ ダージリンおじさん メール:moumouojisan@yahoo.co.jp
01 2020/02 12 3 4 5 6 7 89 10 11 12 13 14 1516 17 18 19 20 21 2223 24 25 26 27 28 29 03

02.27.11:32

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

  • 02/27/11:32

09.21.16:42

グローバル変数をヒープ領域で?

 関数内での変数宣言はスタック領域と言うメモリ領域に、記録される。
その関数を抜けると自動消滅してしまいます。関数外で定義すると
グローバル変数となり静的領域に記録されます。しかし多すぎると
失敗してしまうそうで。

一度だけ実行される関数で宣言した場合、もちろんその変数の寿命
はその関数を抜けた時で、もしその変数の内容を他の関数に持って
行きたい場合はreturnで値を返すか(この時点でコピー)、グローバル
変数や関数の引数に変数のアドレスを渡し、代入するなどをする必要
がありますね。

自動消滅は変数管理に便利ですが、かといって要領の大きいサイズのグ
ローバル変数を何個も作ると、あまり宜しくない気がします。


そこでグローバルだけど静的領域ではなくヒープ領域に保存すれば積もる
事も無く記憶できる容量も多くなるのでは?という案が出ましたが・・・


ただ、このようなことは教本には載っていないので、実際に試してみる
しかないのでしょうね。実際に試したところ問題なく動作はしますが、
内部的にきちんと働いてくれているのかが気になりますね。アドレス
を見れば大体分かると思いますが、そのために試すのは面倒くさそうですw


例:

int *g_Val = new int();


果たしてどうなのでしょうかねぇ


PR
URL
FONT COLOR
COMMENT
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
PASS

TRACK BACK

トラックバックURLはこちら