- bitpork: MOD Júni 28- Augusztus 2- szombat jelen állás szerint.
- Parci: Milyen mosógépet vegyek?
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- gban: Ingyen kellene, de tegnapra
- btz: Internet fejlesztés országosan!
- VoidXs: Tényleg minden játék optimalizálatlan?
- bambano: Bambanő háza tája
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
Új hozzászólás Aktív témák
-
LordX
veterán
Nem azt a függvényt deklaráltad friend-é, amit végül definiáltál (más a paraméter), ezért kapod ezt a hibát a fordítótól.
Egyébként a kód kicsit túlbonyolított, még lesz ezen felül is dolgod vele:
- a konstruktor nx5 méretű adatot vár, nem fog működni más mérettel
- Temporálisat referenciaként visszaadni HATALMAS hiba (operator+; add vissza érték szerint)
- a dinamikus tömbök dinamikus tömbje se nem gyors, se nem hibatűrő, erősen ajánlott helyette egy tömböt használni, és az indexelésnél számolni pozíciót.BTW, hol tolják ezt a magyarkodást, fáj olvasni a kommenteket
-
modder
aktív tag
szerintem átrendezted a kódot ahhoz képest, ahogy a hibaüzenetek állapotában volt
Egyik dolog:
adatok uzenetek[uzszam]=elso();
[...]
adatok elso() { ... }az elso() egy darab elemet ad vissza, míg az uzenetek egy tömb.
Nagyobb gond, hogy ha az elso() még tömböt is adna vissza valamilyen csoda folytán, akkor sem inicializálhatnád így az uzenetek változót. Ha inicializálni akarnád, akkor:
adatok uzenetek[uzszam] = {adat1, adat2, adat3, adat_uzszam-1}Miért?
- Mert fordítási időben tudni kell a tömb méretét, ha inicializálni is akarod deklarálásnál!
- Mert nem lehet egész tömböket másolni az értékadás operátorral. Tömb másolása vagy memcopy() fv. vagy for-ciklussal lehetséges. Általában az utóbbit használjuk.Ha belegondolsz, hogy az adatok uzenetek[uzszam] egy sizeof(adatok)*uzszam hosszú memóriaterület, rájössz, hogy az értékadásnak egy ilyen hosszú memóriaterületet kéne átmásolni úgy, mint a memcpy() fv. Ez túl sok hibához vezetne valószínűleg ezért nincs benne.
Másik dolog:
adatok[] elso() { ... return uzenetek2; }sem működik. Nem tudom tanultad-e hogyan működik a függvényhívás és mi a stack. Amikor hívsz egy függvényt, akkor a függvény visszatérési típusának megfelelő méretű memória területet szabadon hagy a stacken fv hívása előtt, visszatéréskor ide másolja a visszatérési értéket. Ehhez tudni kell a visszatérési érték pontos hosszát.
Ezért nem térhetsz vissza tömbbel, mert annak nem tudod az egzakt hosszát futásidőben.Visszatérhetnél pointer típussal:
adatok* elso() {... return &uzenetek2; }Ezzel már csak az a baj, hogy a mód, ahogyan uzenetek2-t deklaráltad, az a stacken jött létre, és megszűnik létezni, miután a függvény visszatért, ezért ha visszatérés után hivatkoznál rá, memóriaszemétre mutatna. (new-val lehetne a heap-en foglalni, de most ez nem kell)
Megoldás:
adatok uzenetek[uzszam];
elso(uzenetek, uzszam);
void elso(adatok[] uzenetek, uzszam) { beolvasol az uzenetekbe }Amint látod a függvényargumentumokat lehet visszatérési értékek tárolására is használni. Tömb esetében ez ilyen egyszerű. Ha nem tömböt használsz, akkor referenciát kell átadni:
void valami(adat& uzenet) { uzenet = createUzenet(); }Ez teljesen elfogadott, hogy lefoglalod a memóriaterületet a tömbnek először, és ezt adod át a függvénynek, hogy feltöltse adatokkal.
-
Jester01
veterán
-
Karma
félisten
Több lehetőség is van. A getline-nak van egy háromparaméteres formája, aminek megadhatod az elválasztó karaktert. De azt is csinálhatod, hogy kihasználod a >> operátor tokenolvasási képességét, így whitespace-enként olvas ki egy darabot a fájlból.
Ú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!
- Kertészet, mezőgazdaság topik
- bitpork: MOD Júni 28- Augusztus 2- szombat jelen állás szerint.
- BestBuy topik
- Vékonyabb lett, jobb kamerát kapott, de az akku maradt a régi: itt a Fold7
- Nintendo Switch 2
- Bestbuy játékok
- Wise (ex-TransferWise)
- CPU léghűtés kibeszélő
- Napelem
- exHWSW - Értünk mindenhez IS
- További aktív témák...
- Canon EF 100-400 f4.5-5.6 L IS USM II objektív eladó
- ÚJ, 27% számlás! AMD Ryzen 7 7800X3D (96M Cache, up to 5 GHz) Processzor! BeszámítOK
- NAGYKIJELZŐS HP ENVY / Nvidia 2gb dedikált / Intel CORE i7 /8gb ram / 256gb SSD / Világitó Bill
- SAMSUNG Galaxy Z Flip 4 128GB, Pink Gold FÜGGETLEN
- Samsung Galaxy S24 Ultra 512GB Kártyafüggetlen 1Év Garanciával
- HP ProBook 430 G4 Pentium 4415U (bios jelszavas)
- Samsung Galaxy S23 Ultra , 8/256 GB , Kártyafüggetlen
- Telefon felvásárlás!! Samsung Galaxy A20e/Samsung Galaxy A40/Samsung Galaxy A04s/Samsung Galaxy A03s
- Bomba ár! HP Elitebook 850 G3 - i7-6GEN I 16GB I 256GB SSD I RadeonI 15,6" FHD I Cam I W11 I Gari!
- BESZÁMÍTÁS! ASRock B460M i5 10400 16GB DDR4 512GB SSD RTX 2060 Super 8GB Rampage SHIVA TT 500W
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest