Видимо, эта функция в SDL_Mixer продолжает умирать, и я не уверен, почему. У кого-нибудь есть какие-либо идеи? Согласно Visual Studio, сбой вызван тем, что Windows вызывает точку останова где-то в строке 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 содержит один указатель на строку "WAVE" и music_decoders. Ptr равен 0x00000000, и, как я могу сказать, сбой, похоже, в функции realloc (). Кто-нибудь имеет какие-либо идеи, как я мог бы решить эту проблему сбоя? Я не возражаю против необходимости немного рефакторинга, чтобы сделать эту работу, если это сводится к этому.