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

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

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

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

Q&A

解決済

1回答

4122閲覧

C++ vectorのグローバル変数について

Python-Beginner

総合スコア17

C++

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

0グッド

0クリップ

投稿2020/03/04 15:39

C++のvectorの扱い方についてご教示いただきたいです。
global変数として2次元配列のvectorを宣言。その後main関数にて、宣言した変数に値を格納。このglobal変数を、main関数から呼び出した別の関数内で参照したところsegment faultとなりました。その原因がわからず質問させていただいた次第です。segement faultの理由についてご教示いただけると幸甚です。

c++

1#include <bits/stdc++.h> 2using namespace std; 3 4int N; 5vector<vector<int>> field; 6 7void A(int y, int x, int sum) 8{ 9 cout << field[0][0]; ※ここでsegmentation fault 10 return; 11} 12 13int main() 14{ 15 cin >> N; 16 vector<vector<int>> field(2, vector<int>(N, 0)); 17 for (int i = 0; i < 2; i++) 18 { 19 for (int j = 0; j < N; j++) 20 { 21 cin >> field[i][j]; 22 } 23 } 24 25 A(); 26 return 0; 27} 28

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんにちは。

グローバル変数fieldと同じ名前のローカル変数fieldをmain()関数内で定義して設定しています。
つまり、グローバル変数の方のfieldは未設定のままです。

投稿2020/03/04 15:43

Chironian

総合スコア23272

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

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

Python-Beginner

2020/03/04 15:54

早速のご回答ありがとうございます。 頂いたご回答をもとに解決することができました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問