![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 24.03.2009
Сообщений: 375
|
![]()
Доброй ночи!
Подскажите пожалуйста, как у динамических массивов освобождать корректно память? Суть в том, что если массив квадратный,то проблем нет. А если он прямоугольный, то цикл удаления строк выводит EInvalidPointer. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,830
|
![]()
Приводи код, а так можно сказать только: у тебя ошибка в н-ой строчке.
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 25.03.2010
Сообщений: 9
|
![]()
Никаких проблем:
type TBuf= array[1..10,1..20] of real; var Buf: ^TBuf R: real; begin new(Buf); Buf^[1,1]:=1.0; R:=Buf^[1,1]; dispose(Buf); end. А, вообще, динамический массив лучше строится на основе связного списка, когда под каждую новую запись(строку) выделяется своя память с запоминанием адреса в предыдущей записи. Таким образом память используется с максимальной экономией. email: logsvi@yandex.ru |
![]() |
![]() |
![]() |
#4 | |
А может и не...
Участник клуба
Регистрация: 27.03.2010
Сообщений: 1,269
|
![]() Цитата:
В Дельфях это делается так: var mass:array of 'type'; begin SetLength(mass,length); //выделяем память для массива ........... mass:=nil;//освобождаем память end
Перемешивай дело с бездельем и не сойдешь с ума...
|
|
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 24.03.2009
Сообщений: 375
|
![]() Код:
если N=7,M=4, то просто вылет из проги, когда заносим в массив данные For i := 1 to N do For j := 1 to M do A^[i]^[j] := Random(100); Цитата:
|
|
![]() |
![]() |
![]() |
#6 | |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
![]() Цитата:
Код:
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] |
|
![]() |
![]() |
![]() |
#7 | |
А может и не...
Участник клуба
Регистрация: 27.03.2010
Сообщений: 1,269
|
![]()
VadEr писал:
Цитата:
Перемешивай дело с бездельем и не сойдешь с ума...
|
|
![]() |
![]() |
![]() |
#8 | |
А может и не...
Участник клуба
Регистрация: 27.03.2010
Сообщений: 1,269
|
![]()
RUSt88 писал:
Цитата:
(попробуй сделать трансляцию программы, где будет следующая строка Код:
А это уже из другой оперы песня... Причем приведенный тобой пример смело можно назвать псевдо-динамическим массивом, так как размер памяти, выделяемый под такой массив не может превышать 64 кБ, да и то, если эта память ничем не занята. Вот так то...
Перемешивай дело с бездельем и не сойдешь с ума...
Последний раз редактировалось Grag; 28.03.2010 в 14:55. |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Освобождение памяти | Seran4ek | Общие вопросы Delphi | 7 | 21.12.2009 18:07 |
Освобождение памяти | PUH | Помощь студентам | 1 | 22.11.2009 17:14 |
Освобождение памяти | VadEr | Общие вопросы Delphi | 2 | 17.04.2009 22:23 |
Освобождение памяти | AlexandrSid | Общие вопросы Delphi | 3 | 02.02.2009 13:45 |
Освобождение Памяти в Си | volotsky | Помощь студентам | 2 | 16.12.2008 22:36 |