Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.06;
Скачать: 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 вся ветка

Текущий архив: 2003.03.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
3-16911
Clipper
2003-02-15 01:52
2003.03.06
Как удалить запись из БД совсем?


3-16955
Fiend
2003-02-17 10:08
2003.03.06
FireBird и генератор


14-17387
denis24
2003-02-18 19:47
2003.03.06
quickreport


4-17441
Cosmic
2003-01-16 22:07
2003.03.06
Attach to process


7-17426
DDS
2003-01-06 12:49
2003.03.06
Как узнать загруженность процессора?