Вопрос Краш "необработанное исключение"

Начинающий
Статус
Оффлайн
Регистрация
23 Апр 2024
Сообщения
70
Реакции[?]
6
Поинты[?]
1K
Краш в коде
C++:
template <typename T, std::size_t nIndex, class CBaseClass, typename... Args_t>
static CS_INLINE T CallVFunc(CBaseClass* thisptr, Args_t... argList)
{
    
    try
    {
        using VirtualFn_t = T(__thiscall*)(const void*, decltype(argList)...);
        return (*reinterpret_cast<VirtualFn_t* const*>(reinterpret_cast<std::uintptr_t>(thisptr)))[nIndex](thisptr, argList...);

    }
    catch (const std::exception& ex)
    {
        
    }

}
ошибка return (reinterpret_cast<VirtualFn_t const*>(reinterpret_cast<std::uintptr_t>(thisptr)))[nIndex](thisptr, argList...); -
Вызвано необработанное исключение: нарушение доступа для чтения.
thisptr было nullptr.
 
Пользователь
Статус
Оффлайн
Регистрация
22 Июн 2020
Сообщения
184
Реакции[?]
69
Поинты[?]
41K
а ка кфикснауть то
Смотреть контекст, где вызывается, проверку на nullptr тыкнуть, или исправить чтобы он не был нуллптр. Откуда нам знать что и где у тебя вызывается
 
Сверху Снизу