[解決済み] セグメンテーションフォルト11(C++、Mac版
2022-03-03 02:28:45
質問
これを実行しようとすると
int N=10000000;
short res[N];
セグメンテーションフォールトが発生する 11
に変更すると
int N=1000000;
short res[N];
正常に動作する
解決方法は?
OSから与えられたスタック容量を超過しています。もっとメモリが必要なら、動的に割り当てるのが一番簡単な方法です。
int N=1000000;
short* res = new short[N];
しかし
std::vector
は、この文脈では好ましい。なぜなら、上記では
free
を手作業で作成します。
int N = 1000000;
std::vector<short> res (N);
C++11が使えるのであれば、もしかしたら何割か時間を短縮できるかもしれません。
unique_ptr
配列の特殊化も可能です。
std::unique_ptr<short[]> res (new short[N]);
上記のどちらの自動化手法も、使い慣れた
res[index]
文法は、オーバーロードされた
operator[]
しかし、メモリ操作のための生のポインタを取得するには
res.data()
と
vector
または
res.get()
と
unique_ptr
.
関連
-
[解決済み】識別子 "string "は未定義?
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み】エラー。switchステートメントでcaseラベルにジャンプする
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド
-
[解決済み】浮動小数点数の乱数生成
-
[解決済み] 配列のベクトルを扱う正しい方法
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない
-
[解決済み] C++のセグメンテーションフォールトの修正
-
[解決済み] セグメンテーションフォールトとは何ですか?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 unsigned int vs. size_t
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み】 != と =! の違いと例(C++の場合)
-
[解決済み】IntelliSense:オブジェクトに、メンバー関数と互換性のない型修飾子がある
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み】Visual Studioのデバッガーエラー。プログラムを開始できません 指定されたファイルが見つかりません
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み】Eclipse IDEでC++エラー「nullptrはこのスコープで宣言されていません」が発生する件
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない