Почему не работает UBound?

Предыдущая тема Следующая тема Перейти вниз

Почему не работает UBound?

Сообщение  silentspirit в Вс Янв 24, 2016 8:18 pm

Подскажите, как в данном примере, правильно работать с указателем на массив.
1. Получить верхнюю границу массива, передавая в функцию UBound() указатель на массив.
2. Передать указатель на массив в функцию и там обработать его, на пример функцией UBound()

Dim As Integer Arr(2)={1,2,3}
Dim As Integer Ptr pArr=@Arr(0)

? UBound(peek(pArr)) ' НЕ РАБОТАЕТ

Sub Fn(i As Integer Ptr)
? UBound(*i) 'НЕ РАБОТАЕТ
End Sub

Fn(pArr)

Sleep

silentspirit

Сообщения : 2
Дата регистрации : 2016-01-24

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Почему не работает UBound?

Сообщение  silentspirit в Пн Янв 25, 2016 12:23 am

Сам спросил, сам ответил  Smile

Dim As Integer Arr(2)={1,2,3}
Dim As Integer Ptr pArr=@Arr(0)

Sub Fn(pI As Integer Ptr, Count As Integer)
   For i As Integer=0 To Count
       ? *(pI+i)
   Next
End Sub

Fn(pArr, UBound(Arr))

Sleep

silentspirit

Сообщения : 2
Дата регистрации : 2016-01-24

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Почему не работает UBound?

Сообщение  Замабувараев в Ср Фев 10, 2016 10:19 pm

Вообще UBound должна работать только с массивами, а не указателями на первый элемент массива.
Массив во фрибейсике — это объект, хранящий нижнюю и верхнюю границы.
avatar
Замабувараев

Сообщения : 99
Дата регистрации : 2008-08-20
Возраст : 33
Откуда : Красноярск

Посмотреть профиль http://www.freebasic.su

Вернуться к началу Перейти вниз

Re: Почему не работает UBound?

Сообщение  Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения