掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
配列の格納数について (ID:55353)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
補足します。 (当方、VC6を使用しているので、それを前提にしています。) 一般的に、ローカル変数は、スタックという領域に作成されます。 スコープを外れると、ローカル変数は解放されますが、同時に使用できるのは、 スタックのサイズにより制限を受けます。 (スタックを使用するのは、ローカル変数だけではありません。) ここで、VC6のデフォルトのスタックのサイズが1MBと設定されています。 ここを変更するには、プロジェクトの設定のリンクタブで、カテゴリをアウトプットを選択すると、 スタックアロケーションという項目があり、そこで設定します。 > また配列をOnButtunの中でなく外に定義するとエラーがでなくなりましたが、 > これはどういうことなのでしょうか? OnButtunの外というのがよくわかりませんが、おそらくグローバル変数として宣言したのであると思われます。 ここで、先にローカル変数はスタックという領域を使用すると書きましたが、 グローバル変数はスタックとは別な領域を使用します。 このグローバル変数が使用している領域の制限については、詳しくはしりませんが、 1MB以上あるようなので、そのため、配列をグローバル変数として宣言した場合は、 スタックのサイズの制限にひっかからなかったと思われます。 (staticな変数もスタックではない領域を使用します。) 先の返信で、mallocなどで動的にメモリを確保すると書きましたが、 malloc(new)などで、動的に確保した変数も、スタックではない領域を使用するため、 スタックサイズの制限はうけません。 以上で、よろしいでしょうか? #識者の方々、誤りなどあればフォローをお願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.