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

S>Здравствуйте Alex Smirnov, Вы писали:


AS>>Здравствуйте santucco, Вы писали:


S>>>Здравствуйте Alex Smirnov, Вы писали:


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

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

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


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

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

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