どうやら 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 にあるようです() 関数. このクラッシュの問題を処理する方法を知っている人はいますか? この問題を解決するために、多少のリファクタリングを行う必要はありません。