În descrierea-array deschis (în tipul sau var) indică tipul elementelor care îl compun (de exemplu, reală. Char et al.), Dar nu specifică indicii limită. De exemplu:
O caracteristică de matrice deschise este că indexurile lor începe întotdeauna la zero (mai degrabă decât unul care este cel mai frecvent utilizat pentru matrici convenționale).
Pentru programul de a aloca memorie pentru o matrice deschisă, utilizați procedura setlength. care are doi parametri real - numele unui tablou deschis și stabilește numărul de elemente în ea. Ca rezultat al setlength mulți octeți alocate în memorie după cum este necesar pentru memorarea numărului n-lea de elemente de un anumit tip. Astfel, în cazul în care matricea descrisă anterior ca un real și definit 5 elemente, apoi să aloce procedura de setlength sub ea 40 octeți, deoarece pentru a stoca fiecare tip de număr real necesită 8 octeți de memorie (deși nu în mod necesar 8, acest lucru poate depinde de compilator).
Funcția de mare are ca parametru numele de matrice și returnează numărul de index al ultimului element al șirului. De exemplu, memoria este alocată în cele zece elemente ale unei matrice deschise; atunci ultimul index va fi egal cu 9 (din moment ce indexarea începe cu 0) ca funcția returnează ridicată.
Pentru a elibera memoria alocată pentru matrice, utilizați operatorul de zero.
matrice In mod normal deschise sunt folosite pentru transmiterea în matrici de rutină de dimensiuni diferite. Acest lucru permite utilizarea acelorași rutine să se ocupe de matrice de lungime arbitrară. Fără utilizarea de matrice deschise ar trebui să fie pentru o lungime de fiecare matrice pentru a scrie propria rutină.
Luați în considerare programul de mai jos și rulați-l pentru a efectua. Vei deveni mai clare așa cum este descris mai sus.
Notă. Funcția sizeof returnează cantitatea de memorie (în octeți) alocat pentru variabila.