Hirdetés

Új hozzászólás Aktív témák

  • Fire/SOUL/CD

    félisten

    válasz dany27 #2334 üzenetére

    Hali!

    Turbo Pascalban van lehetőség un. általános pointer létrehozására, így:
    p:pointer

    Ebben az esetben nincs a pointernek típusa, ez miatt azonban a NEW nem használható, helyette a getmem ill. freemem fügvényeket alkalmazzák.

    pl egyszerűen ha 2k adatot akarsz lefoglalni(aztán felszabadítani), akkor így csináld
    getmem(p, 2048)
    freemem(p, 2048)

    ha 2048 darab integer számára akarsz létrehozni tömböt dinamikusan, akkor meg így
    getmem(p, 2048*sizeof(integer))
    freemem(p, 2048*sizeof(integer))

    ha 2048 saját típusú tömböt(record) akarsz létrehozni
    getmem(p, 2048*sizeof(MY_NOT_PASCAL_RECORD))
    freemem(p, 2048*sizeof(MY_NOT_PASCAL_RECORD))
    (ebben az esetben nem a típusosan deklarált record-ot értem, hisz akkor felesleges lenne nem típusos pointert létrehozni, hanem arra hogy van 50 elemű tömb egy példánya, és a programozó tudja, hogy az első 10 elem a vezetéknév, a második 10 elem a keresztnév, a többi meg a lakcím pl)

    Azt, hogy hány elemű tömböt ill. milyen adatokat tartalmazó tömböt hozol létre az a program dolga(meg a programozóé :DDD (tehát nem kell deklarálni)

    Fire.

    UI: persze, hogy van-e elég memória a foglaláshoz, azt elötte illik ellenőrizni illetve lekezelni a hibát. A getmem hibával leáll ha nincs elég memória a foglaláshoz...

Új hozzászólás Aktív témák