Hirdetés
- iPhone topik
- Samsung Galaxy A54 - türelemjáték
- Samsung Galaxy S23 Ultra - non plus ultra
- Samsung Galaxy S22 Ultra - na, kinél van toll?
- One mobilszolgáltatások
- Samsung Galaxy A52s 5G - jó S-tehetség
- Telekom T Phone 3 5G – modern tudakozó
- Egészséges evolúciót mutat a Sony Xperia 10 VII
- Milyen okostelefont vegyek?
- Google Pixel 10 Pro XL – tíz kicsi Pixel
Ú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!
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Konteó topic
- ASZTALI GÉP / ALKATRÉSZ beárazás
- Azonnali informatikai kérdések órája
- Luck Dragon: Asszociációs játék. :)
- Milyen légkondit a lakásba?
- iPhone topik
- Macska topik
- Béta iOS-t használók topikja
- Samsung Galaxy A54 - türelemjáték
- További aktív témák...
- Eladó Intellivision multikártya 130 játékkal. használati utasítás és játéklista Opció-ovarlaykártyák
- Nikon z 20mm f/1.8 S Újszerű!
- Eladó egy remek állapotban lévő Google Pixel 9 telefon + az eredeti tokja
- újszerű iPhone 13 Pro Max 128GB graphite grafit független Apple
- újszerű Apple Watch Ultra 2 GPS + Cellular 49 mm-es titántok 3 év garancia ajándék extra szíj
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- iPad Pro 13 M4 256GB wifi újszerű 2028.04-ig jótállás
- GYÖNYÖRŰ iPhone 11 Pro Max 64GB Graphite - 1 ÉV GARANCIA - Kártyafüggetlen, MS3260, 100% Akkumulátor
- Lenovo ThinkPad Z13 G1 (ELKELT)
- Lenovo magyar laptop billentyűzetre van szükséged? Akármelyik verzióban segítünk!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest