Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];

Вниз

Динамический массив.   Найти похожие ветки 

 
kj   (2004-08-26 17:16) [0]

Как отчистить память от динамического массива?


 
Семен Сорокин ©   (2004-08-26 17:18) [1]

SetLength(massiv, 0);
massiv := nil;
?


 
kj   (2004-08-26 17:22) [2]

На это появляется ошибка "Invalid pointer operation".


 
antonn ©   (2004-08-26 17:23) [3]

Запихай в try...except


 
Amoeba ©   (2004-08-26 17:23) [4]


> На это появляется ошибка "Invalid pointer operation".

Значит ошибка в 17-й строке. Код в студию!


 
jack128 ©   (2004-08-26 17:24) [5]

antonn ©   (26.08.04 17:23) [3]
спаси боже от таких програмистов..


 
MegaVolt   (2004-08-26 17:24) [6]

RTFM :)
procedure Dispose(var P: Pointer); Releases memory allocated for a dynamic variable.


 
Amoeba ©   (2004-08-26 17:26) [7]


> antonn ©   (26.08.04 17:23) [3]
> Запихай в try...except

В данном случае так делать "не есть хорошо". Такие исключения надо не отлавливать, а просто их не допускать. Пусть товарищь приведет свой код.


 
Суслик ©   (2004-08-26 17:26) [8]

Эх молодо-зелено.
(я о 3)

Автору.
Динамический массив в записи, а запись ты копируешь командой move...
или что-то такое...
В общем препятствуешь дельфи осуществлять корректный подсчет ссылок.


 
Amoeba ©   (2004-08-26 17:27) [9]


> MegaVolt   (26.08.04 17:24) [6]
> RTFM :)
> procedure Dispose(var P: Pointer); Releases memory allocated
> for a dynamic variable.

Не путай динамический массив с динамической переменной. Не надо пачкать молодежи мозги, если сам не знаешь.
LMD


 
kj   (2004-08-26 17:29) [10]

Код:

M: array of array of Integer;
 SetLength(M, 1, 2);
 M[0, 0]:= 0;
 M[0, 1]:= 0;
 M[0, 2]:= 1;
 M:= nil; -сдесь появляется ошибка


 
MegaVolt   (2004-08-26 17:29) [11]

Упс.... Стормозил. Видать сегодня не мой день :)


 
Amoeba ©   (2004-08-26 17:31) [12]

Все уже сказал Семен сорокин в посте [1]

или
SetLength(massiv, 0);
или
massiv := nil;

Оба варианта эквивалентны.

P.S. Если динамический массив является локальной переменной процедуры/функции, то специально ничего освобождать не нужно - память будет автоматически освобождена при выходе из процедуры.


 
Семен Сорокин ©   (2004-08-26 17:32) [13]

SetLength(M, 1, 2); вместо 2 надо 3
M[0, 0]:= 0;
M[0, 1]:= 0;
M[0, 2]:= 1;


 
kj   (2004-08-26 17:32) [14]

Массив глобальный.


 
kj   (2004-08-26 17:33) [15]

Ошибся. Спасибо всем.


 
Семен Сорокин ©   (2004-08-26 17:34) [16]

галочку range check error в Options проекта поставь


 
Amoeba ©   (2004-08-26 17:35) [17]


> kj   (26.08.04 17:29) [10]
> Код:
>
> M: array of array of Integer;
>  SetLength(M, 1, 2);
>  M[0, 0]:= 0;
>  M[0, 1]:= 0;
>  M[0, 2]:= 1;
>  M:= nil; -сдесь появляется ошибка

Правильно, будет ошибка! Как нужно делать есть в любом руководстве по Delphi или в Help на топик Multidimensional dynamic arrays.


 
Anatoly Podgoretsky ©   (2004-08-26 17:41) [18]

kj   (26.08.04 17:29) [10]
Пальчиками посчитай сколько эдементов выделено и скольким ты пытаешься присвоить значения.


 
Суслик ©   (2004-08-26 17:45) [19]

как всегда молодеж не любит range check error
и почему он по умолчанию не стоит в опциях проекта?



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.031 c
14-1092645916
КаПиБаРа
2004-08-16 12:45
2004.09.12
Лоббирование и программирование


6-1089138129
SergP
2004-07-06 22:22
2004.09.12
UDP. Как отослать пакет на диапазон адресов?


4-1091164721
wild_arg
2004-07-30 09:18
2004.09.12
Контекстное меню


3-1092710262
Sirus
2004-08-17 06:37
2004.09.12
Соединение с Firebird тормозит на Windows XP...


14-1092980992
Real
2004-08-20 09:49
2004.09.12
Библия - 2





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский