巨大な配列をスタックに配置した場合とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 巨大な配列をスタックに配置した場合の意味・解説 

巨大な配列をスタックに配置した場合

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/05/21 08:58 UTC 版)

スタックオーバーフロー」の記事における「巨大な配列をスタックに配置した場合」の解説

システム実装されているメインメモリ容量かかわらず各プログラムスタック領域サイズ既定せいぜい数MiB程度であり、大容量配列確保するのには向いていない。 #include int main(void) { int ary[1000 * 1000 * 1000]; /* 配列大きすぎる */ printf("Hello!\n"); /* &"Hello!\n" のプッシュスタックオーバーフローとなる */} この場合は、 #include int ary[1000 * 1000 * 1000];int main(void) { printf("Hello!\n");} または #include int main(void) { static int ary[1000 * 1000 * 1000]; printf("Hello!\n");} のように配列静的領域移動するか、あるいは malloc などを使ってヒープ領域動的確保すればスタックオーバーフロー回避できる通例システム利用できる空きメモリの量は必ずしも定かではないので、実行時動的メモリ確保成否チェック行なうことが望ましい。 #include #include int main(void) { int *ary = (int *)malloc(sizeof(int) * 1000 * 1000 * 1000); printf("Hello!\n"); free(ary);}

※この「巨大な配列をスタックに配置した場合」の解説は、「スタックオーバーフロー」の解説の一部です。
「巨大な配列をスタックに配置した場合」を含む「スタックオーバーフロー」の記事については、「スタックオーバーフロー」の概要を参照ください。

ウィキペディア小見出し辞書の「巨大な配列をスタックに配置した場合」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「巨大な配列をスタックに配置した場合」の関連用語

巨大な配列をスタックに配置した場合のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



巨大な配列をスタックに配置した場合のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのスタックオーバーフロー (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS