Форум: "Прочее";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];
ВнизКто помнит pascal... Найти похожие ветки
← →
GanibalLector © (2006-05-07 00:00) [0]Есть ли в сабже
array of что-то
или толькоarray [0..число] of что-то
← →
Хозяин (2006-05-07 00:02) [1]Да.
← →
Anton_K © (2006-05-07 00:02) [2]Только array [число..число] of что-то. Динамических массивов нет.
← →
alex-drob © (2006-05-07 00:02) [3]только array [0..число] of что-то
← →
Хозяин (2006-05-07 00:02) [4]или прочитал как и
:)
← →
Писатель (2006-05-07 00:03) [5]Ф паскале динамические массивы? Нэту.
← →
saa (2006-05-07 00:03) [6]в параметрах функций так массивы по ссылке передают.
← →
ArtemESC © (2006-05-07 00:04) [7]Не просто 0..число, а любой порядковый тип...
← →
Langely (2006-05-07 00:05) [8]но параметры по ссылке так передаются...
← →
GanibalLector © (2006-05-07 00:05) [9]Дык это...как-нибудь обойти можно ???
З.Ы. Еще...есть ли в pascal"eSetLength
???
← →
Eraser © (2006-05-07 00:07) [10]
> GanibalLector © (07.05.06 00:05) [9]
да нету вроде.
← →
Anton_K © (2006-05-07 00:07) [11]
> Дык это...как-нибудь обойти можно ???
> З.Ы. Еще...есть ли в pascal"e SetLength???
Что обойти? Это ж не глюк.
И откуда там SetLength возьмется, если динамических массивов нету?
GetMem, FreeMem, New, Dispose юзай.
← →
Langely (2006-05-07 00:07) [12]GanibalLector © (07.05.06 00:05) [9]
Вах! А динамическое выделение память, Dispose там всякие, или как это в паскале?
← →
GanibalLector © (2006-05-07 00:11) [13]Понял,спасибо. Еще по ходу вопрос...как число в строку и обратно переводить??? На
IntToStr
ругается ;)
← →
Eraser © (2006-05-07 00:12) [14]
> GanibalLector © (07.05.06 00:11) [13]
str
← →
Anton_K © (2006-05-07 00:12) [15]Val, Str.
← →
DevilDevil © (2006-05-07 00:19) [16]Единственный выход - динамическое выделение памяти. Ищи соответствующие фунции
Ещё момент (покажу, как можно с GetMem):
type
TArr = array[0..high(integer)] of что-то;
PArr = ^TArr;
var
Massive : PArr;
...
begin
GetMem(Massive, 100 * sizeof(что-то));
for i := 0 to 99 do //!!! -> 0..99
Massive[i] := какое-то значение;
...
FreeMem(Massive);
end.
Фишка в следующем: в качестве аргумента-указателя функции задавай Massive. В то же время берутся элементы нашего массива, как из обычного: Massive[i]
← →
GanibalLector © (2006-05-07 01:08) [17]2 DevilDevil © (07.05.06 00:19) [16]
Ок. Только что-то ругается наhigh
.Видать какой-то модуль надо подключить...
← →
GanibalLector © (2006-05-07 01:09) [18]Господа,Вы уж извините за ламерские вопросы... Мне это нужно буквально на 1 день, а книги под рукой нет.
← →
DrPass © (2006-05-07 01:49) [19]TArr = array[0..32567] - вполне сойдет. Главное - в программе не выйди за пределы выделенной памяти такого "динамического" массива. В отличие от Windows, ты тут получишь не AV, а что угодно от непонятных глюков до полного краха системы
← →
TUser © (2006-05-08 09:58) [20]Примерно так делали до появления дин массивов
PArray = ^TArray
TArray = array [0..0] of integer
...
var A: PArray;
GetMem (A, NewLength * sizeof (integer));
A^[0] := ...
← →
DiamondShark © (2006-05-08 11:43) [21]
> GanibalLector © (07.05.06 01:08) [17]
> 2 DevilDevil © (07.05.06 00:19) [16]
> Ок. Только что-то ругается на high.Видать какой-то модуль
> надо подключить...
Просто high(integer) для 16-битного паскаля -- слишком большой размер массива.
;)
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.039 c