Ответ 1
Я не знаю, с чего начать: -)
В C строки представляют собой только char
массивы, которые, по соглашению, заканчиваются байтом NUL. Что касается управления динамической памятью, вы можете просто malloc
место для них (включая дополнительный байт). Управление памятью при изменении строк - ваша ответственность:
char *s = strdup ("Hello");
char *s2 = malloc (strlen (s) + 6);
strcpy (s2, s);
strcat (s2, ", Pax");
free (s);
s = s2;
В С++ строки (std::string
) представляют собой объекты со всем связанным автоматизированным управлением памятью и контролем, что делает их намного более безопасными и удобными в использовании, особенно для новичков. Для динамического выделения используйте что-то вроде:
std::string s = "Hello";
s += ", Pax";
Я знаю, что я предпочел бы использовать, последний. Вы можете (если вам это нужно) всегда строить строку C из std::string
с помощью метода c_str()
.