Hirdetés
- gban: Ingyen kellene, de tegnapra
- sziku69: Fűzzük össze a szavakat :)
- sidi: 386-os Chicony gázplazma laptop memóriabővítése
- Brogyi: CTEK akkumulátor töltő és másolatai
- GoodSpeed: Pillangóhatás: F billentyű meghibásodása -új gamer számítógépasztal
- Luck Dragon: Asszociációs játék. :)
- eBay-es kütyük kis pénzért
- Geri Bátyó: Agglegénykonyha 9 – Az impulzusvásárlás is lehet tudatos
- tordaitibi: Windows rendszerek indítása EFI partíció nélkül
- potyautas: Idővándor
Ú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!
- Háztartási gépek
- Hisense LCD és LED TV-k
- Lexus, Toyota topik
- E-roller topik
- Házimozi belépő szinten
- gban: Ingyen kellene, de tegnapra
- PlayStation 5
- A Chieftec klasszikus dizájnú, kompakt házát táppal együtt árulják
- Nyíregyháza és környéke adok-veszek-beszélgetek
- Hálózati / IP kamera
- További aktív témák...
- AOC 25 AG251FG 240HZ
- Fujitsu ,15,6",8.gen.i5,világító.bill, 4G LTE,8-32GB/128-512,jó akku,Win.11,szép
- HP,15.6",FullHD,8.gen.core i5 (8X4,0Ghz)8-32GB RAM,256GB-1TB SSD,nagyon jó akku,Win.11,szép
- Újszerű Dell Latitude 7440 -14"FHD+1 IPS - i5-1345U 16GB - 512GB - Win11 - 1 év garancia + Dokkoló +
- 2év Garancia,Lenovo Slim 3,i5 12450H(12x4,4Ghz)15,6"FullHD IPS,Magyar vil.bill,16GBDDR5 RAM,512SSD
- 0% THM 6 havi részlet beszámítás! 5060Ti/5070/5070Ti/5080/5090 videokártyák készletről KAMATMENTESEN
- Apple iPhone 13 Pro Max Graphite ProMotion 120 Hz, Pro kamerák 256 GB-100%-3 hó gari!
- HIBÁTLAN iPhone 13 Pro 256GB Alphine Green 1ÉV GARANCIA -Kártyafüggetlen, MS3745
- Samsung Galaxy S22 128GB,Átlagos,Adatkabel,12 hónap garanciával
- HIBÁTLAN iPhone 15 Pro Max 256GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3495, 91% Akkumulátor
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Laptopműhely Bt.
Város: Budapest