| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > выделение памяти в массиве |
| Автор: rukudias 9.1.2008, 15:29 |
| Привет Всем! есть код char *pt; if(dlenth) { char masqq[1024]; pt=new (masqq) char[20]; } pt[10]='D'; ине подает! вчем тут дело? Типа мне обьяснили это для того чтоб память полюбому очистелась так я кобы после того как переменная masqq умерла в своей обл видимости и очистив память я через указатель могу к этому участку обратится |
| Автор: Alek86 9.1.2008, 15:37 | ||
не совсем понял, что ты хотел, но
1024 байта памяти, выделенные под masqq в стеке, освободятся при выходе из блока |
| Автор: rukudias 9.1.2008, 15:47 |
| как я понял в стеке мы выделяем 1024 байта потом в этих 1024 выделяем 20 я думалчто после того как мы вышли из обл видемости переменной masqq память выделеная динамически тоже удаляется а нет у мя есть указатель на нее я могу писатьв нее читать вот удалить правдо немогу |
| Автор: rukudias 10.1.2008, 11:20 | ||||||
| Привет Всем! На основании опытов я могу сделать вывод:
данная конструкция однозначно удалит память выделеннную динамически в области статического массива провел пару опытов
те каждую секунду выделяю память но не удаляю в диспечере все оке утечки памяти нет
притакой записи все плохо выделяем память но не уничтожаем ее те утечка памяти! вот впринципе и все ! |
| Автор: Alek86 10.1.2008, 11:26 |
тебе же сказали: |
| Автор: rukudias 10.1.2008, 11:49 | ||
а разве оператор new нужен не для выденения памяти? |
| Автор: bsa 10.1.2008, 11:57 | ||||
rukudias
|
| Автор: Damarus 10.1.2008, 11:59 |
http://www.google.ru/search?complete=1&hl=ru&newwindow=1&client=firefox-a&rls=org.mozilla:ru:official&hs=uYY&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=placement+new&spell=1 |