どうやら SDL_Mixer のこの関数は死に続けているようですが、その理由はわかりません。誰にもアイデアはありますか?Visual Studio によると、このクラッシュは、Windows が realloc() 行のどこかでブレークポイントをトリガーすることによって発生します。
問題のコードは、特に SDL_Mixer の SVN バージョンからのものです。違いがある場合。
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 には文字列 "WAVE" へのポインターが 1 つ含まれており、music_decoders.ptr は 0x00000000 であり、私が知る限り、クラッシュは realloc にあるようです() 関数. このクラッシュの問題を処理する方法を知っている人はいますか? この問題を解決するために、多少のリファクタリングを行う必要はありません。