Ситуевина следующая... кк задается массив я стестно знаю, но мне нужен массив, размер которого мне заранее неизвестен - размер задает пользователь. если задаю переменную, скажем 'n' и пишу затем - mas: array[1..n] - ругается матом.
помогите плз
Неактивен
Belial написал:
Ситуевина следующая... кк задается массив я стестно знаю, но мне нужен массив, размер которого мне заранее неизвестен - размер задает пользователь. если задаю переменную, скажем 'n' и пишу затем - mas: array[1..n] - ругается матом.
помогите плз
По Паскалю я не спец, но могу подсказать тупую, но рабочую идею: сделать массив с запасом - 1000-10000 элементов, проверять пользователя на ввод значения n не больше максимума и введенное значение n использовать как ограничитель в операторе цикла.
Неактивен
Голова Надо попробовать. Спасибо.
А я уже накопал кучу инфы и обнаружил что на паскале динамические массивы это большая проблема
хтя народ выходит из положения, но все это бардак...
Неактивен
Разве что динамические списки, но пушка такого размера не для всякого воробья уместна...
Впрочем, вопросы подобной тематики лучше прояснять на sources.ru: http://forum.sources.ru/index.php?s=a9d … owforum=39
Неактивен
Есть в паскале, если память не изменяет, функция Function Malloc (Size : Longint) : Pointer; которая выделяет память возвращает указатель на массив размером Size байт.
Скажем, тебе надо выделить произвольный массив :
type
pmas = ^array [1..1000000] of integer; {Размер заданный тут - формальный, он не имеет значения.}
................
begin
pmas = Malloc(10000*sizeof(integer)); {выделяем паямть размером 10000 элементов каждый из которых - integer }
.....
pmas^[5] =6; {работа с массивом}
.....
a = pmas^[5]; {работа с массивом}
.....
delete(pmas); {Массив больше не нужен. очищаем выделенную паямть! Не забываем этого делать!}
end
Ещё вспомнил! в некоторых реализациях паскаля функция delete() называется free() !
Если идея непонятна - могу написать подробнее. (правда паскалем лет 10 не пользуюсь - но ещё кое-что помню).
Отредактировано Sfunx (23.08.2007 07:53)
Неактивен