Используемый синтаксис зависит от того, чего вы пытаетесь достичь.В нынешнем виде неясно, есть ли синтаксическая ошибка или логическая ошибка.
Вот что говорит текущий синтаксис (пропуская некоторые несущественные шаги):
- Создать массив указателей (изначально эти указатели являются мусором) .
- Назначить значение объекту, на который указывает первый из этих указателей (но поскольку указатель содержит мусор,разыменование это нарушение доступа) .
Вы пропустили шаг, на котором указателю присваивается допустимое значение.Если цель состоит в том, чтобы указать на siteCloud
, ответ Killzone Kid - это правильный путь (ptrTest[0] = &siteCloud;
Я не собираюсь выступать за использование двойного подчеркивания ).Если вы хотите скопировать значения из siteCloud
в объект, на который указывает элемент массива, вам сначала нужно создать этот объект (что-то вроде ptrTest[0] = new EstablishmentCloud_site
).
Прежний метод (назначение адресов)могут столкнуться с проблемами, если объекты не имеют достаточно большой срок службы.Последний метод (больше выделений) может привести к утечкам памяти, если впоследствии вы не выполните соответствующую очистку.Если какие-либо из этих проблем в вашей ситуации, вы можете пересмотреть, если вы действительно хотите массив указателей.(Вы можете обнаружить, что существуют стандартные шаблоны, которые могут упростить вашу реализацию.)