Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема CArray - охренеть :) (число прочтений - 1445 )
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
CArray - охренеть :)
24. Февраля 2007 :: 15:40
Печать  
http://rsdn.ru/Forum/Message.aspx?mid=2362126&only=1

Оказывается, если в CArray выполняется перевыделение памяти при увеличении размера массива, то старые элементы массива копируются на новое место через простой memcpy   без вызовов конструкторов копирования Ужас Проверил исходники CArray в VC6 - это действительно так.

Ужоснах! Заботливо установленные MS грабли налицо Улыбка Т.е. внутри элементов массива не должно быть указателей на внутренние данные элемента, иначе при перевыделении памяти они все станут невалидными. Посмотрел хелп по CArray - ни звука по этому поводу.

Так что еще один плюс в пользу std::vector. Там такой проблемы нет.
  
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: CArray - охренеть :)
Ответ #1 - 26. Февраля 2007 :: 06:05
Печать  
Да, хорошо, что я обычно CPtrArray юзаю.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать