- Megerősíti a platformfüggetlen sugárkövetéses tesztjét a 3DMark
- A Seenda ollós klaviatúrája a Microsoft Sculpt Ergonomic Keyboard nyomdokain jár
- Gamescom 2025: Itt a legújabb Gaming NUC
- Cicomától mentes Palit GeForce RTX 5060 a kevésbé tágas gépházak gazdáinak
- Eldőlt: nem építhetnek hátsó kaput az Apple termékekbe a britek
- Az Xbox égisze alatt oldaná meg a PC-s játékosok legnagyobb gondját a Microsoft
- Milyen videókártyát?
- Autós kamerák
- Gamescom 2025: Itt a legújabb Gaming NUC
- SSD kibeszélő
- OLED TV topic
- Sony MILC fényképezőgépcsalád
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- 3D nyomtatás
- AMD K6-III, és minden ami RETRO - Oldschool tuning
Új hozzászólás Aktív témák
-
bpx
őstag
válasz
norbiphu #102 üzenetére
#include <iostream>
class T{
char* t;
public:
T(char* z) {
t=new char[strlen(z)+1];
strcpy(t,z);
t[strlen(z)]='\0';
// tulcimezted a tombot, nem kell a +1, mert 0-tol indul a cimzes
}
~T() {
if (t!=NULL) delete[] t;
// destruktort eszedbe ne jusson enelkul megirni, kulonben ugy szall el, hogy csak na}
// ehhez persze param. nelkuli konstruktor is kell, ami beallitja NULL-ra akkor is, ha nem csinalsz semmit
};
int main() {
T A(''323232'');
}
[Szerkesztve] -
FehérHolló
veterán
válasz
norbiphu #102 üzenetére
Kicímzel a tömbből a '\0' berakásánál. A legnagyobb index strlen(z).
Másrészt ezzel egy nagyobb baj is van. Ha z alapból nem nullterminált, akkor nem működik rá a strlen() függvény. Ha pedig z nullterminált, akkor szükségtelen a t végére berakni egy '\0'-t.
A harmadik gond pedig a main()-en belül az A objektum inicializálásánál van. A () zárójelbe nem két ''-t (shift+1) kell rakni, hanem egy ''-t (shift+2). De ha így adod be neki a stringet, akkor zárd le '\0'-al, és nem lesz baja a konstruktornak sem. (A két első hibát kiküszöbölöd.)
Szerk: Jé, most látom, hogy két shift+1 egymás mellett ugyanúgy néz ki, mint a shift+2, ha code blokkba rakom.
[Szerkesztve]
Ú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!
- Az Xbox égisze alatt oldaná meg a PC-s játékosok legnagyobb gondját a Microsoft
- Milyen videókártyát?
- Sony Xperia 5 V - kell-e nekünk zoom?
- Samsung Galaxy S25 Edge - a tegnap határán
- Mobil flották
- Autós kamerák
- Gamescom 2025: Itt a legújabb Gaming NUC
- Luck Dragon: Asszociációs játék. :)
- Háztartási gépek
- Samsung Galaxy A55 - új év, régi stratégia
- További aktív témák...
- Új Acer Predator 16 WQXGA 165Hz G-Sync i9-13900HX 16GB 1TB Nvidia RTX 4070 8GB 140W Win11 Garancia
- Számítógép, ryzen 5 2600, RX 580 8GB, 16gb ddr4, 512gb ssd, 1tb hdd
- HP EliteBook 850 G8 Fémházas Multimédiás Laptop 15,6" -65% i7-1185G7 16/512 Iris Xe FHD
- Gigabyte GeForce GTX 1660 Ti OC hibátlan, dobozos, 14 nap személyes garanciával
- HP EliteBook 850 G8 Fémházas Multimédiás Laptop 15,6" -65% i7-1185G7 32/512 Iris Xe FHD
- Dell Latitude 7440 -14"FHD+1 IPS - i5-1345U 16GB - 512GB - Win11 - 1 év garancia + Dokkoló + 240W DC
- LG 32GS94UX - 32" OLED / UHD 4K / 240Hz - 480Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
- Bomba ár! Dell Latitude E5250 - i5-5GEN I 8GB I 128SSD I 12,5"FHD Touch I HDMI I Cam I W10 I Gari!
- MacBook felvásárlás!! MacBook, MacBook Air, MacBook Pro
- GYÖNYÖRŰ iPhone SE 2020 64GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS2896, 100% Akkumulátor
Állásajánlatok
Cég: FOTC
Város: Budapest