Keresés


Toplista

Toplista
  • betöltés...

Magántanár kereső

Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!

Mi a különbség az egyes tömb dekralálások között? (c++)

267
Gondolok itt a new kulcsszóval történő memória foglalásra, illetve arra mikor "normális" módon foglal az ember memóriát egy tömbnek (int asd[]) .

A válaszokat előre is köszönöm
Jelenleg 1 felhasználó nézi ezt a kérdést.
0
Felsőoktatás / Informatika

Válaszok

1
Ha azt írod, hogy
`"{"`
`"int"\ "abc"[100];`
`"..."`
`"}"`
akkor a stack-en foglalsz le 100-szor 4 byte-os területet, amit a "..." részen tudsz használni. Ahogy kimegy a vezérlés a záró "}" zárójelen, akkor felszabadul a memória magától, nem lehet tovább használni.

Ha pedig new-val allokálsz területet (`"int *abc = new int"[100];`), akkor nem a stack-en, hanem a heap-en allokálódik a hely, egy pointeren keresztül tudod elérni, viszont tovább is tud élni, nem csak abban a blokkban, ahol a new-t kiadod. Addig él, amíg ` "delete [] abc;"`-vel fel nem szabadítod.

0