ページ 1 / 1
二次元配列を関数の引数にしたい
Posted: 2014年10月01日(水) 16:38
by Sera
こんにちは。
現在作成しているコードで二次元配列中の数値を入れ替える処理を関数化させようと思い、
いざ実行してみたところ、Bus error 10: というエラーが出てしまいます。(MacOSXです)
恐らく二次元配列を関数の引数として使っているのがいけないのだと思いますが、
解消法が不明だったのでここに質問させていただきました。
コードは以下の通りです。
コード:
#include <iostream>
int x,y;
int state[4][4];
int swap(int state[4][4], int x, int y){
int tmp;
tmp = state[x][y-1];
state[x][y-1] = state[x][y];
state[x][y] = tmp;
return y++;
}
int main(void){
cin >> x >> y;
for(int i = 0; i < 4; i++){
for(int j = 0; j < 4; j++){
cin >> state[i][j];
}
}
swap(state, x, y)
}
Re: 二次元配列を関数の引数にしたい
Posted: 2014年10月01日(水) 16:45
by みけCAT
Sera さんが書きました:コードは以下の通りです。
コード:
#include <iostream>
int x,y;
int state[4][4];
int swap(int state[4][4], int x, int y){
int tmp;
tmp = state[x][y-1];
state[x][y-1] = state[x][y];
state[x][y] = tmp;
return y++;
}
int main(void){
cin >> x >> y;
for(int i = 0; i < 4; i++){
for(int j = 0; j < 4; j++){
cin >> state[i][j];
}
}
swap(state, x, y)
}
C++だと仮定すると、
・cinが未定義(std::cinの間違い?)
・swapの呼び出しの後にセミコロンが無い
以上の理由によりコンパイルが通りません。本当にこのコードを実行していますか?
また、テストに使用した入力も教えていただけますか?
Re: 二次元配列を関数の引数にしたい
Posted: 2014年10月01日(水) 16:49
by Sera
みけCAT さんが書きました:Sera さんが書きました:コードは以下の通りです。
コード:
#include <iostream>
int x,y;
int state[4][4];
int swap(int state[4][4], int x, int y){
int tmp;
tmp = state[x][y-1];
state[x][y-1] = state[x][y];
state[x][y] = tmp;
return y++;
}
int main(void){
cin >> x >> y;
for(int i = 0; i < 4; i++){
for(int j = 0; j < 4; j++){
cin >> state[i][j];
}
}
swap(state, x, y)
}
C++だと仮定すると、
・cinが未定義(std::cinの間違い?)
・swapの呼び出しの後にセミコロンが無い
以上の理由によりコンパイルが通りません。本当にこのコードを実行していますか?
また、テストに使用した入力も教えていただけますか?
すみません、質問内容を詳細にするために打ったコードなので自分でも恥ずかしいミスです。
コード:
#include <iostream>
using namespace std;
int x,y;
int state[4][4];
int swap(int state[4][4], int x, int y){
int tmp;
tmp = state[x][y-1];
state[x][y-1] = state[x][y];
state[x][y] = tmp;
return y++;
}
int main(void){
cin >> x >> y;
for(int i = 0; i < 4; i++){
for(int j = 0; j < 4; j++){
cin >> state[i][j];
}
}
swap(state, x, y);
}
/*
入力内容:
2 3 4 5
6 7 8 1
9 10 11 12
13 14 15 16
*/
Re: 二次元配列を関数の引数にしたい
Posted: 2014年10月01日(水) 16:53
by みけCAT
Sera さんが書きました:コード:
/*
入力内容:
2 3 4 5
6 7 8 1
9 10 11 12
13 14 15 16
*/
データが足りない気がしますが、本当にこの入力ですか?
Re: 二次元配列を関数の引数にしたい
Posted: 2014年10月01日(水) 16:55
by Sera
みけCAT さんが書きました:Sera さんが書きました:コード:
/*
入力内容:
2 3 4 5
6 7 8 1
9 10 11 12
13 14 15 16
*/
データが足りない気がしますが、本当にこの入力ですか?
また書き損じました。すみません。
コード:
/*
入力内容:
2 3
2 3 4 5
6 7 8 1
9 10 11 12
13 14 15 16
*/
Re: 二次元配列を関数の引数にしたい
Posted: 2014年10月01日(水) 17:02
by みけCAT
データ提供ありがとうございます。
とりあえず
Ideone.comおよび
Wandboxで実行してみましたが、いずれも正常終了でした。
きちんとMacOSXで調べないとわからないかもしれません。
Re: 二次元配列を関数の引数にしたい
Posted: 2014年10月01日(水) 17:08
by Sera
みけCAT さんが書きました:データ提供ありがとうございます。
とりあえず
Ideone.comおよび
Wandboxで実行してみましたが、いずれも正常終了でした。
きちんとMacOSXで調べないとわからないかもしれません。
調べてみたところ、やはりMacOSX独特のエラーでした。
試しに再起動してみたところ改善したので解決とさせていただきます。
みけCATさんありがとうございました!