![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему это не работает
_koha © (2008-08-19 13:49:00)Компилируется без ошибок, но при работе "падает".
//..............................
var
Conter: integer;
N: array of integer;
buf: array of integer;
//..................................
procedure TForm2.Button3Click(Sender: TObject);
Var
num:integer;
begin
Num:=Length(N);
SetLength(Buf,Num);
Move(N, Buf, Num);
Inc(Num);
setlength(N, Num);
move(Buf, N, Num-1);
N[Num]:=num;
for num:=0 to Length(N)-1 do
memo1.Lines.Add(IntToStr(N[num]));
memo1.Lines.Add('----------------------------');
end;
+koha (2008-08-19 15:24:00) [21]
> Medbe}I{onok XML © (19.08.08 15:19) [43]
Ну так в том то и дело, что по твоему описанию оно работать и не должно, но вопреки всякой логики работает, вопрос почему же? Объясни.
Medbe}I{onok XML (2008-08-19 15:23:00) [22]и лечат. но временами попадаются неизлечимые.
+koha (2008-08-19 15:20:00) [23]
> А ты почему-то сразу в клинику обратился за диагнозом)
Ну так а клиника это значит вы? т.е. форум? так вы здесь диагнозы выдаете только? или еще и лечите?
Medbe}I{onok XML (2008-08-19 15:19:00) [24]Имелось в виду "Принцип, использованный в GlobalReAlloc".
Эти принципы устарели давно.
Согласно новому постановлению вцспс мув по переданному адресу понимает, что автор работает с массивом и даже может определить тип элементов массива.
Renegat (2008-08-19 15:16:00) [25]> [38] Renegat © (19.08.08 15:08)
> GlobalReAlloc
Имелось в виду "Принцип, использованный в GlobalReAlloc".
Medbe}I{onok XML (2008-08-19 15:15:00) [26]Вот решил выяснить все подробности.
Зачем?
Тебе пора новую редакцию хелпа выпускать.
А то в том что у нас, написано одно вранье.
Сергей М. (2008-08-19 15:14:00) [27]
> решил выяснить все подробности
Что ж ты не обратился за разъяснениями, в первую очередь, к отладчику?
Отладчик ведь - первый друг, товарищ и брат трояноделов)
А ты почему-то сразу в клинику обратился за диагнозом)
+koha (2008-08-19 15:10:00) [28]> Сергей М. © (19.08.08 15:02) [35]
вопрос об динамических массивах меня давно интересовал в плане общего развития. Вот решил выяснить все подробности.
Renegat (2008-08-19 15:08:00) [29]> [30] _koha (19.08.08 15:00)
Быть такого не может. SetLength имеет в своей основе GlobalReAlloc. Он автоматически копирует данные из предыдущего блока памяти в только что зарезервированный, если тот большего размера, чем исходный. Если же размер меньше - то вообще ничего никуда не копирует, и память остаётся на месте.
Dennis I. Komarov (2008-08-19 15:07:00) [30]О уже забанили, а ветка еще висит...
+koha (2008-08-19 15:06:00) [31]
> Сергей М. © (19.08.08 15:01) [32]
> Эт ты для сокетов что ли массивчик заготавливаешь ?
- К удивлению нет.
_koha (2008-08-19 15:02:00) [32]
> Сергей М. © (19.08.08 15:00) [29]
>
> Мда..
> Далеко пойдет сей троянописец)
а вы и ту ветку видели?
Сергей М. (2008-08-19 15:02:00) [33]
> _koha (19.08.08 15:02) [34]
А что ее видеть ?
Она вон до сих пор красуется)
Amoeba (2008-08-19 15:01:00) [34]
> _koha (19.08.08 15:00) [30]
>
> setlenth как раз то все и портит!
Лучше жевать, чем говорить!
LMD!
Сергей М. (2008-08-19 15:01:00) [35]
> _koha (19.08.08 15:00) [30]
Эт ты для сокетов что ли массивчик заготавливаешь ?
Medbe}I{onok XML (2008-08-19 15:00:00) [36]все. к терапевту.
_koha (2008-08-19 15:00:00) [37]setlenth как раз то все и портит!
Сергей М. (2008-08-19 15:00:00) [38]Мда..
Далеко пойдет сей троянописец)
Medbe}I{onok XML (2008-08-19 14:58:00) [39]и нет там никакого мусора.
Тебе же сказали, что setlenth не портит содержимое массива.
Потому и не мусор.
Замувишь в новый чистый массив, будет мусор.
_koha (2008-08-19 14:56:00) [40]
> Medbe}I{onok XML © (19.08.08 14:46) [24]
>
> Снимись с ручника-то.
> Мув копирует не спички, а байты.
> Каждая спичка состоит из четырех байт.
Значит и не только байты а еще и элементы массива, незнаю но вот тот код работает и нет там никакого мусора.