C ++ удалить элемент из массива указателей

0

Я создаю массив указателей, а затем попытаюсь удалить один из элементов таким образом:

sf::Rect<float>* Rects2[] ={new sf::Rect<float>(0,0,WIDTH,1), (sf::Rect<float>*)&_invader.getBoundingRect() };
    delete Rects2[1];

Когда я запускаю код, я получаю сообщение об ошибке отладки с "_BLOCK_TYPE_IS_VALID (pHead-> nBlockUse)"

Я попытался с успехом удалить элемент, используя delete &Rects2[1];

когда я попытался удалить первый элемент - delete Rects2[0]; Я получил ошибку один раз, и тогда все прошло хорошо.

  • 0
    Вы не правильно используете команду отца принца
Теги:
arrays
pointers
sfml
delete-operator

1 ответ

0

Ваш второй элемент массива не выделяется вами, поэтому вам не следует пытаться его выделить (если это не указано в документации библиотеки).

Что касается другой попытки, конечно, вы можете только один раз выделить предмет.

  • 0
    второй элемент выделяется классом, который я сделал. он просто возвращает sf :: Rect <float>. А насчет первого элемента - удаление вызывается только один раз. я запускал код 4 раза и только первый раз выдавал эту ошибку, и после этого все прошло нормально

Ещё вопросы

Сообщество Overcoder
Наверх
Меню