質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

3回答

1741閲覧

C++で巨大なデータを扱うためには

fdaskjlfda

総合スコア40

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2019/05/09 10:53

環境

Windows
ブラウザーがサクサク動く程度のパソコン(動かすパソコンは特定できません)

やりたいこと

hoge[180][240][360]や、huga[240][180]程度の配列をclassの中のprivate変数として使用したい。(classの外から見えないようにしたい)

調べたこと

ヒープ領域とスタック領域というものがある。
スタック領域のサイズは小さめで、ヒープ領域のサイズは大きめ。

c++

1class Hoge { 2public: 3private: 4 int huga[180][240][360]; 5};

とすると、hugaは、スタック領域に展開される。

newを使うと、ヒープ領域に展開される。

質問

ヒープ領域の広さは、何GBぐらいで、char型の配列はどれくらいの要素数まで作ることが可能なのかを知りたいです。

よろしくおねがいします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

完全に実行環境に依存します。

ただ一般的な傾向として、大きな連続した領域を割り当てるのは失敗しやすいです。これはOSを起動しているうちにメモリー上でデータが断片化して、連続した領域を確保しづらくなっていくためです。

25MBの割り当てに失敗したなんていう例もあるそうです。
ref: https://rigaya34589.blog.fc2.com/blog-entry-543.html#comment2558

投稿2019/05/09 11:11

編集2019/05/09 11:12
yumetodo

総合スコア5850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fdaskjlfda

2019/05/09 11:13

わかりました ありがとうございます!
guest

0

Linux mint 19.1のclang version 9.0.0 (trunk 358576)で、エラトステネスの篩を実装した時long(8バイト)でcalloc()を使って10億まで確保したことがあります。・・・800Mぐらいかな?

投稿2019/05/09 11:20

編集2019/05/09 11:24
cateye

総合スコア6851

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cateye

2019/05/09 11:24

実装メモリは16Gです
fdaskjlfda

2019/05/26 08:21

teratailを開いてなくて、通知に気づくのが遅れました わかりました ありがとうございます!
guest

0

ベストアンサー

どれだけのヒープ領域が確保できるかは、お使いのコンパイラ・リンカがなにか、32bit/64bitのどちらか、ビルド時のオプション設定はなにか、によって変わるものなので、実際にヒープを確保してみてどうなるかを調べたほうが早いかと思われます

それを調べた記事があったような記憶もありますが、コンパイラのバージョンが変わるとまたその結果も変わりますんで、古い記事だとあんまし参考にならないかと思われます

投稿2019/05/09 11:10

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fdaskjlfda

2019/05/09 11:13

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問