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?
@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.
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?
@psi-nos: tak
Normalnie bym użył :)