Hirdetés
- EUV-áttörés vagy marketingfogás? Lépeget előre Kína a felzárkózás rögös útján
- Félrevezető a Tesla önvezető marketingje, mégis zöld utat kaphat Európában
- Kisétvágyú Radeon RX 9060 XT-t hozott az AMD
- Új képmotorral mutat fügét a ChatGPT a Google banánjának
- Izmos kis "2 az 1-ben" MoDT alaplapot villantott a Minisforum
- E-book olvasók
- Házimozi belépő szinten
- Milyen videókártyát?
- Kormányok / autós szimulátorok topikja
- VR topik
- Utánajártunk, hogy melyik memória mennyire drágulhat
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Összement a mosásban az ASUS új VGA-inak PCI Express 5.0 csatlakozója
- TCL LCD és LED TV-k
- Vezetékes FEJhallgatók
Ú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!
- Lenovo Legion Augmented Reality szeműveg az élethű személyes mozi vagy virtuális játek élményhez!
- Corsair 2x16Gb 6400 cl32 hynix a-die eladó ( cl34 7800!!!)
- KARÁCSONYI AKCIÓ ! LG 34GS95Qx-B 34" Ívelt OLED MLA Wqhd 240HZ 0.03 MS Gaming Monitor !
- Elac Discovery DS-S101-G Zene szerver
- PALIT RTX 5090 32GB GDDR7 GAMEROCK - Gari 2028.02.25. -ig - Eladó!
- Apple Watch Series 7 41mm GPS,Újszerű,Dobozával,12 hónap garanciával
- Samsung Galaxy S24 Ultra 120 Hz Dynamic AMOLED 2X, beépített S Pen, Galaxy AI 12/256 GB
- Lenovo ThinkPad T14 Gen1 Ryzen5 4650U Refurbished - Garancia
- Apple iPhone 15 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- LG 34WQ75X-B - 34" Ívelt IPS Panel - 3440x1440 2K QHD - 60Hz 5ms - FreeSync - USB Type-C 90W
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



