std::vector<Texture*>型の変数の実行時エラー
kerochan  2018/07/26(Thu) 15:44
windows10でOpenSiv3dのver0.27を使用していて、下のコードをグローバル領域に記述しすると実行時に
「0x00B4F261 で例外がスローされました (Electron_lead(debug_32-bit).exe 内): 0xC0000005: 場所 0x00000014 の読み取り中にアクセス違反が発生しました」
というエラーが生じます。
何が原因なのでしょうか?

std::vector<Texture*> TEXTURE_VECTOR = {
new Texture(U"Graphics/Block_Base.png"),
new Texture(U"Graphics/Block_North.png"),
new Texture(U"Graphics/Block_East.png"),
new Texture(U"Graphics/Block_South.png"),
new Texture(U"Graphics/Block_West.png"),
new Texture(U"Graphics/Block_Begin.png"),
new Texture(U"Graphics/Block_End.png")
};
記事編集
Reputeless  2018/07/26(Thu) 23:09
Siv3D の初期化より前に Texture を作成することはできません。Main() の呼び出し以降にしてください。
また、Siv3D のプログラムでは通常ポインタは使いません。Array<Texture> で十分です。
編集
kerochan  2018/07/27(Fri) 08:40
Main()以降に書けば問題ないということですね。エラーの原因がわかりました。ありがとうござました。
編集
件名
Re: std::vector<Texture*>型の変数の実行時エラー
名前
コメント
画像添付


投稿修正キー (投稿を修正する時に使います)
画像認証 (右画像の数字を入力) 投稿キー

- WEB PATIO -