Был такой вопрос: Преобразование char[] в string
В дополнение к нему у меня возник дополнительный вопрос по работе конструктора String(char *). Что происходит при вызове такого конструктора - выделяется отдельная область памяти для класса String в которую копируется содержимое char * ?
Либо формируется какая то ссылка на имеющийся char * и переменную char * уже нельзя уничтожать?
Т.е. в переменную класса String попадает копия строки char * - или попадает некий указатель на некую область памяти, которую нужно будет сохранять ?
const char txt[]="Пример";
char * b = &txt;
String s(b);
В описании конструктора std::string сказано:
from c-string (4) string (const char* s);
Copies the null-terminated character sequence (C-string) pointed by s
т.е. копируется содержимое.
UPD в связи с комментариями про Arduino
Как верно заметил KoVadim, String и std::string - это совершенно разные классы.
На GitHub'е есть исходники в открытом доступе. Конкретно класс String описан в файле WString.cpp
Там также как и в std::string конструктор копирует данные.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости