Я пытаюсь написать функцию класса, которую можно вызвать для динамического создания нового производного объекта и добавить этот объект в динамически распределенный массив, который хранит указатели на объекты базового класса. Если я запускаю функцию дважды, я могу получить доступ к объектеру [0], но доступ к объектеру [1] дает мне нарушения доступа к чтению. Кто -нибудь может сказать мне, почему это не хранит объекты соответствующим образом? < /p>
Объектив был динамически распределен с пространством для 10 объектов, поэтому в положении 1 есть место. Это происходит даже когда NewObject () называется только дважды. < /p>
//Array definition (outside of function):
Base* objectAry;
objectAry = new Derived[10]
//Function in question:
void Derived::newObject()
{
Derived* tempObject = NULL;
tempObject = new Derived;
objectAry[numObjects] = *tempObject;
numObjects++;
delete tempObject;
tempObject = NULL;
}
< /code>
При запуске простой функции, чтобы вернуть одну из переменных элемента полученного объекта: < /p>
Exception thrown: read access violation.
this->objectAry+1-> was 0x1.
< /code>
Очевидно, что я держу это неправильно, но я не уверен, как это работать.
Подробнее здесь: https://stackoverflow.com/questions/570 ... t-pointers