psi-nos
psi-nos
#cpp #programowanie Mam taki przykład

class Ex {
char * tekst;
public:
void ustaw_tekst(char * nowy_tekst)
{
tekst = nowy_tekst;
}
}

Rozumiem, że tutaj nie zadziała to tak, że tekst zostanie ustawiony, bo nowytekst zniknie po zakończeniu funkcji (czy kiedy)? Jak to zrobić poprawnie? Zaalokować tekst długością nowytekst i skopiować np. za pomocą strcpy?
  • Najlepsze
  • Wszystkie komentarze
sebo000
Uzyj stringa ;)
blisher
Zaalokować tekst długością nowy_tekst i skopiować np. za pomocą strcpy?

@psi-nos: tak
A.....k
A.....k
@psi-nos: No i jeszcze przydziel pamięć.
a.....m
a.....m
@psi-nos: alokujesz tablice charów operatorem new o długości [strlen + 1] (+ 1 bo znak konca łancucha), kopiujesz strcpy. w destruktorze uwalniasz zaalokowaną pamięć deletem.
psi-nos
psi-nos
psi-nos Autor
0
@sebo000: w arduino? ( ͡° ͜ʖ ͡°)
Normalnie bym użył :)
RARvolt
@psi-nos: lepiej strncpy
Kaczus2B
Kaczus2B
@RARvolt jesli zna długość (a zna, bo musi przygotować tablicę), to wystarczy strcpy.
l.....l
l.....l
@psi-nos: jaka różnica czy użyjesz stringa, czy napiszesz alokację samemu? Chyba tylko tyle, że w swojej implementacji zrobisz błąd : /