Hirdetés
- eBay-es kütyük kis pénzért
- sziku69: Fűzzük össze a szavakat :)
- GoodSpeed: Vanda ajándéka - 60 nap SkyShowtime előfizetés
- Luck Dragon: Asszociációs játék. :)
- Viber: ingyen telefonálás a mobilodon
- Lalikiraly: Kinek milyen setupja van?
- sziku69: Szólánc.
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- btz: Internet fejlesztés országosan!
- CinemaVision plugin ismertető a Kodihoz
Új hozzászólás Aktív témák
-
ArchElf
addikt
válasz
h1ght3chzor #1524 üzenetére
Amit kiókumláltam (hiányos c++ tudásommal):
Project* temp1 = new Project [getprojektmeret()];
for(int i=0;i<getprojektmeret();++i){
temp1[i]=this->tomb[i];
}
delete[] this->tomb;
this->tomb = new Project[getprojektmeret()+1];
int k=0;
for(k=0;k<getprojektmeret();++k){
this->tomb[k]=temp1[k];
}
this->tomb[k]=a;
delete[] temp1;A második sorban referencia szerint másolod át az osztályokat, így hiába másoltad át, ha a referencia a temp1-ben ugyanoda mutat, mint a tomb-ben.
Miután az 5. sorban delete-tel kitörlöd a tömböt látszólag törlődik a temp1 tömb tartalma is, hiszen a delete igazából nem (csak?) a hivatkozás tömböt törli, hanem a mögötte álló tartalmat is. A következő sorbancsinálsz egy új tömböt az elemeidnek, de azok már valójában törlődtek az előző sorban, hiába másolod át a for ciklusban, már nem lesznek valid elemek (príma érvénytelen hivatkozásokat sikerül így generálnod. A második delete meg valószínűleg azért hal meg, mert már eleve érvénytelen hivatkozások vannak a tömbben.Alapvetően az alábbi lehetőségeid vannak:
- ne töröld az elemeket delete-el (se az elején se a végén), csak nullázd ki a tömbböt, az új elemet add hozzá egyszerűen (lehet, hogy memory leak-et okoz - bár jobban belegondolva taláűn nem is)
- nem kell a sok másolgatós mizéria, csinálj neki egy új tömböt a régit meg dobd el (kb ugyanaz mint az előző, kevesebb másolással), korábban már írtam hogyan
- add át érték szerint az elemeket - kell hozzá egy Project(const Project& p) konstruktor, amivel másolni tudod az elemeket. Bonyolultabb (illetve volatilis) osztályok esetén nem igazán működik, de ha mindenképp szeretnéd használni a delete-et akkor ide jó lesz.AE
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Felrobbant a Pixel Fold Zack Nelson kezében
- PlayStation 5
- Otthoni hálózat és internet megosztás
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- Mibe tegyem a megtakarításaimat?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Fotók, videók mobillal
- Okos Otthon / Smart Home
- Lakáshitel, lakásvásárlás
- Drón topik
- További aktív témák...
- HIBÁTLAN APPLE WATCH ULTRA 2 NATURAL TITANIUM 49MM -1 ÉV GARANCIA - MS3713, 100% AKKUMULÁTOR
- SzinteÚJ! HP Elitebook 860 G10 i7-1355U 32GB 1000GB 16" FHD+ Gar.: 1 év
- iPhone 12 Pro 256GB Gold -1 ÉV GARANCIA - Kártyafüggetlen, MS3581
- Bomba ár! Dell Latitude 5300 - i5-8GEN I 8-16GB I 256SSD I 13,3" I HDMI I Cam I W11 I Gari!
- BESZÁMÍTÁS! MSI B450 R7 5800X 32GB DDR4 512GB SSD RX 6800 16GB ZALMAN Z1 Plus A-DATA 750W
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest