|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.07.2012, 22:58 | #1 |
Форумчанин
Регистрация: 26.07.2011
Сообщений: 376
|
Ошибка при объявлении массива(Ordinal type expected).
Доброго времени суток. Требуется совет\помощь.
Суть проблемы в разделе Объявлении массива. Код:
Использовал поиск, в поиске смотрю что народ объявляет преспокойно массивы даной длинны. Но не могу понять почему у меня выскакивает ошибка. Ещё хотел добавить что суть ошибки мне ясна, пробовал менять скажем тип на Longint, но тоже не помогло и выбило ту же ошибку. Для большей ясности того, что хотел сделать. Инциализировать массив и изначально сделать его нулевым. int a[0..10^5]={0...0}; И ещё такой вопрос, вот объявлен к примеру даный массив и вот как я его заполняю нулями. Код:
Заранее спасибо.
Люблю на ты.Я человек простой
|
27.07.2012, 23:02 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Код:
Цитата:
I'm learning to live...
|
|
27.07.2012, 23:23 | #3 |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
|
27.07.2012, 23:25 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
28.07.2012, 02:11 | #5 | |
Форумчанин
Регистрация: 01.06.2009
Сообщений: 108
|
Цитата:
Первая - при описании индекса массива все то, что выходит за границу 65535 перестает быть перечислимым типом. Скажем, если нижняя граница индексов положительная - то верхняя не может превышать 65535, все, что выше - выходит за границы перечислимого типа (т.е., диапазон значений типа Word). Если же нижняя отрицательная - то верхняя может быть только до 32767 (т.е., диапазон значений типа Integer) Но проблем с этим при программировании на Турбо Паскале нет, потому что есть вторая проблема: ни размер одной переменной, ни общий размер всех статических переменных не может превышать размер сегмента. То есть, даже если ты опишешь array[1 .. 40000] of Integer - это не вызовет ошибки "Ordinal type expected", зато вызовет другую: "Structure too large", ибо размер такого массива больше чем 65535 байт. Последний раз редактировалось volvo877; 28.07.2012 в 02:15. |
|
28.07.2012, 04:11 | #6 | |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
Леший, ответь, плз, на вопрос volvo877 - какой компилятор у тебя? И старайся всегда это указывать, если вопрос по его сообщению об ошибке.
А вооще - опять же, по словам volvo877 - раскрути над головой и забрось подальше свои 16-битные компиляторы. Скачай себе FP и радуйся ЖИЗНИ, а не тому, что де удалось на старой кобыле путем многочисленных ухищрений таки перевезти 10 тонн кирпичей.. Цитата:
1. либо для заполнения массивов of byte/char, 2. либо для для заполнения нулями. Если тебе вдруг понадобится заполнять единицами или еще чем-то масив of integer, то таким способом ты получишь совсем не то. Нужно использовать обычный цикл по индексам массива, от мала до велика. А вообще, заполнение нулями глобальных пременных совершенно не оязательно. Система делает это и без тебя, не вижу смысла повторять. Если же твой массив описан внутри процедуры или функции - тогда да, он будет содержать мусор, и инициализация нужна (если она нужна, конечно)).
Предпочитаю на "ты".
|
|
28.07.2012, 21:11 | #7 |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
|
28.07.2012, 22:05 | #8 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Самое надежное хотя и пожалуй медленное действо.
I'm learning to live...
|
|
30.07.2012, 11:56 | #9 |
Форумчанин
Регистрация: 26.07.2011
Сообщений: 376
|
Ответ на вопрос volvo877
Турбо Паскаль 7.0, и таки да, 16-битный ( Stilet, ошибка у меня возникала именно в Код:
Люблю на ты.Я человек простой
|
31.07.2012, 02:22 | #10 |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
Что значит "если не сделает"? Приведи пример, когда в FP этого не произошло. Повторяю: это делает не FreePascal, и не Turbo. Это делает системный загрузчик. И это есть требование безопасности системы - защита от подглядывания одного процесса за другим. Если этого не будет, подглядывающая программа может сканировать выделенную ей системой память в поисках нестертых паролей и номеров кредиток.
Предпочитаю на "ты".
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка Unit1.pas(100): Statement expected, but expression of type 'Boolean' found | sedoq | Общие вопросы Delphi | 3 | 08.02.2012 01:27 |
Ошибка при объявлении файла записей | bogdanidze | Помощь студентам | 2 | 13.05.2011 08:26 |
Type name expected почему? | ImmortalAlexSan | Общие вопросы C/C++ | 3 | 10.02.2011 21:32 |
ошибка при обработке функции класса "missing type specifier - int assumed" | askerpro | Общие вопросы C/C++ | 8 | 02.06.2010 23:09 |
Ошибка в объявлении переменных | Superlotles | Помощь студентам | 1 | 17.12.2009 17:05 |