Re[8]: Возвращение массива из функции
От: achp  
Дата: 29.07.02 14:55
Оценка:
Здравствуйте Alex Smirnov, Вы писали:

AS>>>>> и чем народ не устраивает просто sA* p=(sA*)new sA[count];

S>>>>Я дико извиняюсь за собственную тупость — но я не понял сокровенного смысла этой конструкции

AS>>> На то он и сокровенный!


AS>>>Зачем нужно придумывать функцию простого выделения памяти

AS>>>чтоб потом на продолжении долгого времени успешно искать ошибку
S>>Ну, new [] — это не простое выделение памяти, а выделение памяти под массив элементов с вызовом конструктора по умолчанию для каждого элемента массива.
S>>delete [] соответственно вызовет деструктор для каждого элемента массива и освободит выделенную память.
S>>Я сокровенность преобразования sA* к sA* я все-таки не понял .
S>>Если это попытка ВНЕШНЕ (то есть для успокоения зрения )привести указатель на память под массив элементов к указателю на память под элемент, то попытка эта не только наивная, но и опасная с точки зрения утечек памяти.
S>>И она вовсе не дает право освобождать память, выделенную new [], с помощью delete.

AS>Ну насколько я знаю компиляторы...они не позволяют без предупреждения оставлять попытки переопределения void* к указателю на другой тип !!!


А где здесь void*?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.