Здравствуйте 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* к указателю на другой тип !!!