![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() |
compiler |
![]() ![]()
Сообщение
#1
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
Добрый день!
у меня вопрос, как узнать высоту динамического массива записей? пытался так, однако возникает ошибка... Код type может надо произвести разименование?r = record i1,i2:integer; end; PDynArray = ^TDynArray; TDynArray = array[1..1] of r; var a:PDynArray; i:integer; begin writeln(high(a)); end. заранее благодарен. -------------------- Спасибо!
Удачи! |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Повторяю: при использовании средств TP невозможно получить размер динамически выделенного массива (если только при выделении памяти не запоминать размер), поскольку:
Цитата(TP Help) function High(X) Понимаешь, в чем дело? Описывать-то тебе массив (для объявления указателя на него) придется либо [1 .. 1], либо [1 .. maxint div sizeof( R )], иначе смысл - то какой в динамическом массиве, если все известно на этапе компиляции? А вот как только ты описал этот массив, High сразу же будет возвращать конечное значение интервала, задающего индексы. Все, круг замкнулся...Returns the highest value in the range of the argument. Remarks: Result type is X, or the index type of X. X is either a type identifier or a variable reference. The type denoted by X, or the type of the variable denoted by X, must be one of the following types. Array type: the highest value within the range of the index type of the array Выход - одни из двух: либо (как я написал выше) использовать TP и запоминать размер выделяемого массива (кстати, вполне логично, его ж надо потом еще корректно удалить), либо 32-битный компилятор + SetLength, тогда размер (корректный) возвращается функцией Length. Сообщение отредактировано: volvo - 24.11.2007 19:57 |
compiler |
![]()
Сообщение
#3
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
что ж, спасибо.. будем заводить еще одну переменную поскольку задание необходимммо решить именно на ТП...
-------------------- Спасибо!
Удачи! |
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 7:19 |