return;
// Przydziela dodatkowy znak na kończący znak pusty. cchNew = m_cch + cch; pchNew = new char[cchNew + 1];
// Wskazówka 49. if(! pchNew) return;
// Pomyślnie przydzielono nowy bufor, strcpy(pchNew, m_pch);
II Wskazówka 128. strcpy(pchNew+m_cch, pch); if(m_pch)
delete m_pch; m_pch = pchNew; m_cch = cchNew;
void String::ReinitString(const char *pch, int cch)
char *pchOld; int cchOld;
if(cch != m_cch)
pchOld = m_pch; cchOld = m_cch; lnitString(pch, cch); if(m_pch)
// Czy pomyślnie zainicjalizowano napis? Teraz można usunąć pamięć
// starej zmiennej pch, jeśli taka istnieje.
if(pchOld)
delete pchOld;
else
// Nie udało się przydzielić pamięci dla napisu? Przywracamy stare // wartości. m_pch = pchOld; mech = cchOld;