teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

修正

2016/11/11 09:47

投稿

catsforepaw
catsforepaw

スコア5944

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  > void sort_input(vector<int> *a){
2
2
 
3
3
  まず、`sort_input`関数への`vector`オブジェクトの渡し方に誤りがあります。ポインタ渡しではなく参照で渡してください。ポインタで渡しているため、まったく見当違いの処理になってしまい、アクセス違反が発生しているものと思われます。
4
- 参照渡しは`&a'と書きます。参照渡しした変数は通常の変数と同様`a.size()`のようにピリオドでメンバを指定してください。
4
+ 参照渡しは`&a`と書きます。参照渡しした変数は通常の変数と同様`a.size()`のようにピリオドでメンバを指定してください。
5
5
  C++では、ポインタ渡しでなければ困る理由がない限り、参照渡しにしてください。
6
6
 
7
7
  変数`temp`は`vector`ではなく、配列の要素である`int`型で定義してください(引数をポインタ渡しにしているためおかしなことになっています)。

1

文言訂正・追記

2016/11/11 09:47

投稿

catsforepaw
catsforepaw

スコア5944

answer CHANGED
@@ -1,7 +1,8 @@
1
1
  > void sort_input(vector<int> *a){
2
2
 
3
3
  まず、`sort_input`関数への`vector`オブジェクトの渡し方に誤りがあります。ポインタ渡しではなく参照で渡してください。ポインタで渡しているため、まったく見当違いの処理になってしまい、アクセス違反が発生しているものと思われます。
4
+ 参照渡しは`&a'と書きます。参照渡しした変数は通常の変数と同様`a.size()`のようにピリオドでメンバを指定してください。
4
- 参照渡しは`&a'と書きます。C++では、ポインタ渡しでなければ困る理由がない限り、参照渡しにしてください。
5
+ C++では、ポインタ渡しでなければ困る理由がない限り、参照渡しにしてください。
5
6
 
6
7
  変数`temp`は`vector`ではなく、配列の要素である`int`型で定義してください(引数をポインタ渡しにしているためおかしなことになっています)。
7
8
 
@@ -9,7 +10,7 @@
9
10
 
10
11
  > for (t = 0; t < a->size(); t++){
11
12
 
12
- 二つの値を比較しながらループを進めるため、外側のループは、最後の要素の1個手前になるようにします。`t < a->size() - 1`としてください。
13
+ 二つの値を比較しながらループを進めるため、外側のループは、最後の要素の1個手前になるようにします。`t < a.size() - 1`としてください。
13
14
 
14
15
  > for(u = a->size() - 1; u > t - 1; u++)
15
16