Hirdetés

Keresés

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

  • Sk8erPeter
    nagyúr

    de pont errol beszeltem. Az ujtomb valtozo nem egy "statikus" tomb. Az egy pointer. Amirol mit is irtam? Ja tenyleg, azt hogy futasi idoben lehet neki memoriat foglalni.

    Tehat megegszer, mert ugy tunik nem jon at :D

    ha egy valtozot igy deklaralsz

    int *tomb

    az egy pointer lesz. Ponternek futasi idoben foglasz meretet, ujra foglalod stb...

    ha egy valtozot igy deklaralsz:

    int tomb[100]

    az egy tomb, array, nevezzuk akarminek, lesz. A pointernek foglalt terulettel ellentetben ennek a memoriaigenye mar forditaskor eldol, es a stack-en fog csucsulni megvaltoztathatatlanul, es nem a heap-en ahogy a pointer altal foglalt terulet, amivel azt csinalsz amit akarsz, lefoglalod, felszabaditod, ujrafoglalod.

    Ertem? :D

    Szóval akkor pl. az általam mutatott példában az ujtomb nevű tömb nem tömb, hanem pointer. De a tömb olyan, mint egy pointer, mert pl. függvénynek már eleve a címet adjuk át, ha tömböt adunk át. De a pointernek mások a tulajdonságai, szabadon, futásidőben változtatható a memóriaigénye, ide-oda állítgatható, stb., míg a tömbnek már fordításkor meghatározott a memóriaigénye, akármilyen adatot pakolászunk is bele (persze a megadott típus szerinti méretkorlátokon belül). Tehát a tömbnek ha megszakadunk, sem tudunk változtatni futásidőben a memóriaszükségletén.
    Az eddigiek helytállóak? És "csupán" ilyen szempontból van eltérés?

    Szerk.: jól "egyszerre" írtuk a hsz.-eket, olvasom is a válaszaitokat. :R

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