Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Почему это не работает


Страницы:   1 2 3 4

_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]
>
> Снимись с ручника-то.
> Мув копирует не спички, а байты.
> Каждая спичка состоит из четырех байт.


Значит и не только байты а еще и элементы массива, незнаю но вот тот код работает и нет там никакого мусора.


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо