Вниз
Скачать: CL | DM;

Как задать массив, если первоначально его длина неизвестна?   Найти похожие ветки 

← →
UDS   (2003-02-25 18:34) [0]

Задан массив типа Array [1..n] of integer, где n - длина массива, которая становится известна только по ходу программы (например вводится пользователем). В проге число n берется из едита, куда оно вводится пользователем. Но обработчик матерится что-то по поводу константы. Подскажите пожалуйста как избавиться от проблемы.


← →
Романов Р.В. ©   (2003-02-25 18:36) [1]

F1 - dynamic arrays


← →
h@1f-e1f ©   (2003-02-25 18:37) [2]

Делай динамический массив: a:array of integer;


← →
UDS   (2003-02-25 20:15) [3]

Какие при этом особенности? Будет ли работать такой код:

var
n:integer;
A:array of integer;

//////Нажата кнопка

begin
n:=edit1.text;
SetLength(A,n);////особенно это место интересует
end.


← →
UDS   (2003-02-25 20:22) [4]

Работать вроде работает, но похоже возникают проблемы с освобождением памяти. Я пока с этим не сталкивался. Растолкуйте чё не хватает в указанном выше кодеж


← →
h@1f-e1f ©   (2003-02-25 20:26) [5]

По идее должен работать...


← →
Романов Р.В. ©   (2003-02-25 20:33) [6]

n:=StrToInt(edit1.text);
а остальное правильно



← →
UDS   (2003-02-25 20:37) [7]

При дальнейшей попытке изменения n через едит происходит ошибка связанная видимо с высвобождением памяти (массив однажды идентифицированный не хочет переидентифицироваться)


← →
Романов Р.В. ©   (2003-02-25 21:10) [8]

Давай код и текст ошибки


← →
Cr@sh ©   (2003-02-25 21:20) [9]

finalize(A); Не хватает...


← →
UDS   (2003-02-25 21:33) [10]

Пожоже проблема в проге идет после....
Код проги см. в новом вопросе "Проблема с заполнением динамического массива"


← →
Fredericco ©   (2003-02-26 00:25) [11]

Попробуй так:
SetLength(A,0);
SetLength(A,n);


← →
PVOzerski ©   (2003-02-26 02:11) [12]

Ребята, а вы помните, что динамические массивы начинаются с 0-го, а не с 1-го элемента? А если очень хочется с 1-го, работайте через GetMem/FreeMem/ReallocMem, только аккуратно.



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.011 c
1-17033
AFrolov
2003-02-25 11:03
2003.03.06
Com Server Warning


3-16968
AlexAlex2
2003-02-14 16:59
2003.03.06
Как бороться с Directory is bizy на присв. Session.PrivateDir ?


1-17131
Winni
2003-02-22 15:22
2003.03.06
Как в Делфи вызвать прерывание ? Например, прочесть сектор.


14-17309
LameroZZ
2003-02-14 23:57
2003.03.06
!!!!! ini-файлы & реестр !!!!!


3-16980
VIB
2003-02-17 17:38
2003.03.06
Клавиши Left Right в DBGride




   Наверх