dinamikus tömbök
A FreePascal, Delphi kiegészíti egy érdekes lehetőség, hogy írják le a tömb megadása nélkül a méreteket, és ennek következtében határok módosítsa az index:
var intArray: tömb integer;
Többdimenziós dinamikus tömböket van leírva, mint egy sor tömbök. Például egy kétdimenziós:
írja T3DinArray = tömb tömb egész; var A. T3DinArray;
Az ilyen tömbök dinamikus és kezdetben nulla hosszúságú. Beállítása a tömb méretét, és meghatározzák annak futási termelődik, valamint a húrok által SetLength és hossza funkciókat. volt. A elemek ebben az esetben vannak számozva a nullától.
// A program meghatározza az első felbontása az első mérés (az oszlopok száma): SetLength (A, 3); // Ezután a második mérési felbontás van beállítva mindhárom oszlopok, például: SetLength (A [0], 3); SetLength (A [1], 2); SetLength (A [2], 1);
Ez létrehoz egy háromszög mátrix:
Felszabadítja a memóriát foglal el a tömb, akkor az ugyanazon üzemben a SetLength, jelezve száma nulla elemek, vagy a következő paranccsal
Megjegyzés. hozzárendel egy értéket nilosvobozhdaet memória csak Delphi dinamikus tömböket. Normál pointerek felszabadítása nem történik meg, ami oda vezethet, hogy az úgynevezett „drain” memóriát.
Megjegyezzük, egy jelentős különbség a húrok és a dinamikus tömböket, amelyek azonos belső ábrázolása alapján mutató, de különböző módszerek működését. Két különböző vonalak álló ugyanazokat a karakterek tekinthető egyenlőnek, és a két különböző tömb tartalmazó azonos elemek nem egyenlő.