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ő.

Kapcsolódó cikkek