SDL_Mixerのこの機能は絶えず死にかけています。誰にもアイデアはありますか? Visual Studioによると、クラッシュはWindowsがrealloc()行のどこかでブレークポイントを起動することによって引き起こされます。以前に安定した機能でreallocがクラッシュする
SVNバージョンのSDL_Mixerのコードは、特に違いがある場合は該当します。
static void add_music_decoder(const char *decoder)
{
void *ptr = realloc(music_decoders, num_decoders * sizeof (const char **));
if (ptr == NULL) {
return; /* oh well, go on without it. */
}
music_decoders = (const char **) ptr;
music_decoders[num_decoders++] = decoder;
}
、私は、Visual Studio 2008を使用している、とmusic_decodersとnum_decodersの両方が正しい(music_decodersは、ptrが0x00000000のである。文字列 "WAVE"、およびmusic_decodersに、1つのポインタが含まれている、と私は言うことができる最高クラッシュはrealloc()関数内にあるようですが、このクラッシュの問題をどのように処理できるか考えている人はいますか?
デバッグモードでビルドしていますか?もしそうなら、あなたはここでもっと多くの細部を得ることができます。正確にどこがクラッシュしていますか?ブレークポイントを起動するのはなぜですか? (Windowsは通常あなたにその理由を伝えます)など。 – arke
デバッグモードでビルドし、SDL_Mixer.DLLファイルとそれを使用しているプログラムに生成された* .pdbファイルをコピーし、そのプログラムをビルド/デバッグモードで実行します。クラッシュすると、上記のクラッシュが発生していますエリア。 – Sukasa
これはC++でタグ付けされていますが、SDLプロジェクトはC言語で書かれています。C++では、おそらくstd :: vectorを使用して、間違ってしまう機会を避けることができます... –