Hirdetés
- Több száz játékban kezdi meg karrierjét az FSR Redstone
- Thermalright tulajok topikja
- iPad topik
- Külső merevlemezek - USB, eSATA, FireWire HDD
- Rogyásig pakolható a Cooler Master Cosmos szériás csúcsháza
- TCL LCD és LED TV-k
- Azonnali alaplapos kérdések órája
- Milyen videókártyát?
- Kétszáznál is több játékhoz hozta el az FSR Redstone-t az új AMD Software
- Hamarosan "kémkedhet" az NVIDIA a saját GPU-i után?
Ú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
-
proci985
MODERÁTOR
válasz
h1ght3chzor
#1524
üzenetére
teljes kód nem kell, pl egy tömb típusa, még az a is elég szvsz.
tipp: szeparáld a tárolóclasst a projecttől, és teszteld pl egy célra létrehozott classal külön. szerintem egyszerűbb lenne, hacsak nem valami minimálprojektről van szó, ahol nem éri meg mindent szétválasztani.
"Egyébként stl tárolót, nem használhatok"
beadandó?
WonderCSabo: jogos, push_back pedig tényleg a legegyszerűbb
.Mindent van értelme dinamikusan kezelni, sokszor jól jöhet (bár nyilván ilyen kicsi feladatnál nem sok értelme van).
persze, de elnézve a kódot volt egy olyan sanda gyanúm, hogy itt valami egyéb követelmény is van a háttérben (tipikus c iskolapéldának tűnt)..
Ú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!
- Több száz játékban kezdi meg karrierjét az FSR Redstone
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Elemlámpa, zseblámpa
- TGA2025 - Lara Croft felbukkanása már szinte borítékolt
- Diablo IV
- Vivo X300 - kicsiben jobban megéri
- A részvénypiacot is kilőné az űrbe a SpaceX
- Thermalright tulajok topikja
- iPad topik
- Poco F6 5G - Turbó Rudi
- További aktív témák...
- Xiaomi 13T Magánszemélytől Garanciával
- ASUS ROG PG39WCDM Ívelt Gamer Oled Monitor!39"/2k ultrawide/240hz/0,03ms/Gsync-Freesync/Type-C/!
- Akciós! Makulátlan MacBook Pro 16" i9 16GB 1TB 5500M asztro szürke részletek a leírásban.
- UF Lenovo Yoga 9i x360 Érintős Hajtogatós Laptop Tab 14" -50% i7-1360P 16/1TB Iris Xe 2,8K OLED 90Hz
- iPhone 13 Pro Max 256GB Graphite megkímélt állapotban eladó!
- 175 - Lenovo Legion Pro 7 (16IAX10H) - Intel Core U9 275HX, RTX 5070Ti (ELKELT)
- GYÖNYÖRŰ iPhone 11 64GB White -1 ÉV GARANCIA - Kártyafüggetlen, MS3871, 100% Akkumulátor
- GYÖNYÖRŰ iPhone 13 mini 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS4055
- magyar billentyűzet - 121 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070 - 4 év gar
- GYÖNYÖRŰ iPhone 12 mini 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3853
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi

.

