Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 1
Регистрация: 27.11.2014
Сообщений: 54

Указатели на char

27.11.2014, 20:51. Показов 3652. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите разобраться в чём ошибка и как можно проиллюстрировать её.
Было написано:
1)
Code
1
2
3
char *s;
s = "Hello";
s[1] = 'a';
2)
Code
1
2
char *sn;
strcpy (sn,"Hello");
И в 1 и во 2 случае преподаватель указал на ошибку и сказал что так делать нельзя. Надо делать так:
1)
Code
1
2
char *s= "Hello";
s[1] = 'a';
2)
Code
1
2
char *sn = new char [10];
strcpy (sn,"Hello");
Код в принципе работает и так и сяк. В чём конкретно ошибка? И почему? Помогите разобраться, пжлст.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.11.2014, 20:51
Ответы с готовыми решениями:

указатели char
Уважаемые, помогите разобраться с указателями. Вот пример. Есть класс Class P{ public: void SetName(name){ ...

Указатели на char
Доброго времени суток! Никак не могу разобраться с указателями :( Базовые вещи аля подобных примеров int z = 1; int *ptrz =&z;...

Указатели char *
Добрый день, с момента создания прошлой темы про указатели я разобрался в ней. Понял, что конкретно не понятно - когда в функцию передается...

21
0 / 0 / 1
Регистрация: 27.11.2014
Сообщений: 54
28.11.2014, 00:00  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Нет, никакого отношения к объему памяти это +10 не имеет. Общий размер буфера в моем примере, как несложно видеть, равен 100. А это +10 лишь определяет, в какое место этого буфера будет скопирована строка "Hello".
Ок, это понятно, спасибо. А для чего тут можно использовать указатель? в данном примере с буффером.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6725 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
28.11.2014, 07:51
Лучший ответ Сообщение было отмечено Boltina как решение

Решение

Boltina, к примеру, для того же самого, для чего использовано в примере. Да и просто для удобства..
К примеру, без указателей пришлось бы писать как-то так
C
1
strcpy (&buffer[10],"Hello");
И выводить это же. Что не очень удобно, с указателями зачастую удобнее. А вообще, имхо, лучше всего видно удобство указателей в коде функций наподобие копирования строк и т.п.
Например, вышеупомянутую функцию strcpy можно реализовать как-то так
C
1
2
3
4
5
char * strcopy(char *dest, const char *source)
{
    while((*dest++ = *source++)) ;
    return dest;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.11.2014, 07:51

Тип char и указатели
Вопрос... Тип может хранить только символы, или строки тоже? Если только символы, то почему этот код работает?: ... void...

Массив символов char и указатели
В общем нужно сохранить путь к диску в переменную, что бы потом использовать в _findfirst Но сколько бы я не бился над этим, ничего не...

Указатели при работе со строками char*
Помогите разобраться с указателями #include <iostream> #include <string.h> using namespace std; int main() { char*...

Указатели char* - конкатенация без <string.h>
char *pp,*p,*s1; // p и s1 имеют свои значения, по сути необходимо из &quot;p&quot; сделать соединение &quot;s1+p&quot; (строго без...

Строки (массив char), указатели. Не могу понять логику! Help!
Вообщем проблема в том что выводятся лишние символы в строках.. хотя в них есть признак окончания строк - нулевой байт я новичок в С...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru