FreeBasic
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.

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

Участников: 2

Перейти вниз

Почему не работает UBound?  Empty Почему не работает 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

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

Почему не работает UBound?  Empty 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

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

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

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

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

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

http://www.freebasic.su

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

Вернуться к началу

- Похожие темы

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