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

  • mgoogyi

    senior tag

    válasz Teasüti #4132 üzenetére

    A new meg nem new között az a különbség, hogy a new-val a heap-en foglalsz memóriát, new nélkül meg a stack-en. (itt nem erre a nem szabványos dologra gondolok: int p [I]= {};)
    Ez utóbbi elég limitált tud lenni, ha majd egyszer írsz rekurzív(önmagát hívó) függvényt, belefuthatsz.
    Ezt hívják stackoverflow-nak. Olvass utána, hogy mi az a heap és mi az a stack.
    Egyébként paraméterezett méretű tömböt new nélkül nehéz lértehozni.

    A new (new []) esetében egy pointer-t kapsz vissza és a te feladatod ezt eltakarítani delete-tel ( delete []).
    Azért, hogy ezt ne felejtsd el, javasolt olyan osztályokat használni, amik megteszik ezt helyetted.
    A vector meghívja helyetted a new[]-t és a delete[]-t, menet közben át is méretezi a benne lévő array-t.
    Kényelmessé és biztonságossá teszi a tömbkezelést.
    A unique_ptr pedig általánosságban jó arra, hogy egy objektum felszabadításával ne kelljen foglalkozni.

    Ha ezeket nem használod és elfelejteted a delete-et, akkor keresheted, hogy miért növekszik a progid memóriahasználata (memóriaszivárgás).

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