Skip to content
Dynamic Arrays
step 1/5

Reading — step 1 of 5

Learn

~1 min readArrays and Strings

FreeBASIC supports dynamic arrays sized at runtime:

DIM nums() AS INTEGER       ' empty dynamic array
REDIM nums(0 TO 9)           ' size to 10 elements (0..9)
nums(0) = 42
REDIM PRESERVE nums(0 TO 19) ' grow, keeping existing values
UBOUND(nums)                  ' upper bound: 19
LBOUND(nums)                  ' lower bound: 0

REDIM PRESERVE keeps existing values. Without PRESERVE, reallocating zeroes the array.

Multi-dimensional:

DIM matrix(3, 3) AS INTEGER
matrix(1, 2) = 5

Iteration:

DIM i AS INTEGER
FOR i = LBOUND(nums) TO UBOUND(nums)
    PRINT nums(i)
NEXT i

Sorting — built-in SORT (some BASIC dialects). Otherwise implement bubble-sort or use a sort library.

Search:

Function IndexOf(arr() AS INTEGER, target AS INTEGER) AS INTEGER
    DIM i AS INTEGER
    FOR i = LBOUND(arr) TO UBOUND(arr)
        IF arr(i) = target THEN Return i
    NEXT i
    Return -1
End Function

Pass arrays to functions with arr() AS Type (the () indicates an array).

Discussion

Ask a question, share an insight, or help someone who’s stuck.

Sign in to post a comment or reply.

Loading…