googleのストリートビューの劣化版のようなものを作ろうと思い、カプセル化を意識した結果、
以下のようなコードになりました。(かなり省略してますが)
おそらく、文法的に問題ない気がするのですがコンパイルに引っかかりました。
(「ハンドルされない例外が発生し、読み取り中にアクセス違反が発生しました」というエラーです)
ウィンドウを閉じてから機能を停止するので当初は問題なかったのですが、後々class内の関数でmap** mを使う処理
を実装することができなくなるので質問させて頂きました。
エラーが発生しなくなるにはどうすれば良いのでしょうか?
開発環境はVisual Stdio Express C++ 2013 for Windows desktopで、OSはWindows 8.1です。
class map{
public:
int graph[5];
int event;
};
class field{
private:
int w;
int h;
string name_;
map**m;
public:
~field(){
delete m;
}
void f_set(int x,int y,string name){
w = x;
h = y;
m = new map*[w];
m[0] = new map[w * h];
for (int i = 1; i < w; i++) m[i] = m[0] + i * h;
name_ = name;
string path = ("photo\\");
path += name;
for (int x = 0; x < w; x++){
for (int y = 0; y < h; y++){
for (int i = 1; i <=4; i++){
string pa = path;
pa += IntToString(x);
pa += IntToString(y);
pa += IntToString(i);
pa += (".png");
m[x][y].graph[i] = LoadGraph(pa.c_str());
}
}
}
}
};