Это не имеет ничего общего с двойным указателем. В основном у вас возникает следующая ситуация:
int* p;
*p = 24;
Вы обращаетесь (разыменовываете) неинициализированный указатель, который является неопределенным поведением.
В вашем конкретном случае obj
неинициализирован и obj[i]
является неопределенным поведением.
Ааа, и здесь мы снова go: в C ++ не используйте необработанные указатели, которые обозначают владение. Используйте умные указатели или в вашем случае контейнеры. В C ++ не используйте явные вызовы new
и delete
. Снова используйте умные указатели, если вам действительно нужны указатели с владельцем.
Фундаментальная концепция в C ++ - RAII