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

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


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


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

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

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


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

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