char 10



Автор Кафыв вафыаы задал вопрос в разделе Другие языки и технологии

КАК ПОМЕСТИТЬ НУЛЕВОЙ СИМВОЛ В КОНЕЦ СТРОКИ С++ КАК char* str1 = new char [10]; str1 = "ABCD"; и получил лучший ответ

Ответ от
str1[4] = '';

Ответ от ...[гуру]
char* str1 = new char [10];
ОК. Вы веделили память
str1 = "ABCD"
А теперь str1 уже не указывает на выделенную память, а на начало строки ABCD, и получается утечка памяти.
Более того ABCD при такой записи уже содержит 0 терминатор.
Легко убедиться:
char *s1 = new char[10];
char *s2 = s1; //Запоминаем s1 в s2
s1 = "ABCD"; //Здесь кст можете получить предупреждение
cout << (int)s1[4] << endl; //Проверяем терминатор
cout << (s1==s2) << endl; //Проверяем указатели на одну область или разные
Для того, чтобы на выделенную память скопировать строку надо использовать strcpy. Н-р
char *s1 = new char[10];
strcpy(s1, "ABCD");
Нуль-терминатор в этом случае так-же добавится автоматически.
Для того, чтобы обезопасить себя и не вылезать за границы выделенной памяти можно использовать strncpy ну или проверять длину перед копированием.

Ответ от Krab Bark[гуру]
Он уже автоматически помещен туда компилятором. Строковая константа "ABCD" неявно содержит в конце нулевой символ.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: КАК ПОМЕСТИТЬ НУЛЕВОЙ СИМВОЛ В КОНЕЦ СТРОКИ С++ КАК char* str1 = new char [10]; str1 = "ABCD";
спросили в Музыка Def Leppard
ребят назовите 10 самых лучших, популярных рок групп !!!
вот мои 10 любимых метал групп (из известных) :
Death
Sentenced
Ulver
Cynic
подробнее...
спросили в CAM Can
C++. Что делает cin.ignore()? Ну для конкретного примера cin.ignore(10,\'пробел\';
учимся читать msdn вместе:
EXAMPLE
// basic_istream_ignore.cpp
// compile with:
подробнее...

Вопрос про настройку Windows 10.
Это в ручную искать нужно, нет цельных видео о полной настройке. Сейчас брошу парочку .Сергей
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в Sql
В чем разница между Oracle, SQL и PL/SQL? Желтельно услышать ответ от ораклойдов и профессионалов.
Oracle - это РСУБД - Реляционная система управления базами данных
SQL - структурированный язык
подробнее...
спросили в FreeBSD
Посоветуйте фильмы-катастрофы типа Армагеддона и Послезавтра.
тут вам и землетресения. наводнения. эпедемии. пожары. метеоры. смерчи. лавины и прочее.
подробнее...

Какой символ в excel означает принудительный перенос строки?
Если в макросе:
"Строка1" & vbCr & vbLf & "Строка2"

Если в ячейке перенос:
Alt
подробнее...
спросили в Asian Open
Вставьте предлоги пожалуйста! Буду премного благодарен.
1. What is he afraid OF...2. If you are interested IN...literature you may join our literary
подробнее...
спросили в C++ Stdio h
cout и printf в языке C
printf(\"%c\\n\", *ot);

> Компилятор не поддерживает функцию cout.
Какой
подробнее...

advanced system care 10 лоховская программа?
Это же IObit... А вся их продукция - сущий ад.))
Сделка с дьяволом..))
͏подробнее...

кто знает немецкий переведите пожалуйста !
1 Koch-u. Buntwäsche mit Vorwäsche - бельё, допускающее
кипячение, и цветное, с
подробнее...

[C++] Как Выделит память под массив.
Странно
256 на 10 не делится, а в массиве элементы имеют одинаковый размер
Может там не
подробнее...
спросили в Match 3 games
Помогите с английским, как делать?
a) все три будут выступать в роли сказуемого -

take part - участвовать
take place -
подробнее...
спросили в Perception
надооооооооо. расписание дня на английском языке пример: 13.00 eating и так с самого утра
Ну, а откуда мы можем знать, что ты там днём делаешь или в другое любое
подробнее...
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*