С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
elephants
25 / 25 / 15
Регистрация: 30.12.2015
Сообщений: 95
Завершенные тесты: 1
1

Каким образом выделяется память при инициализации строковой константой указателя

26.02.2016, 02:33. Просмотров 182. Ответов 2
Метки нет (Все метки)

Доброго времени суток. Хотелось бы более подробно узнать некоторые моменты относительно указателей и динамического выделения памяти. Предположим есть следующий код :
C++
1
2
3
char *ch;
ch = "string";
std::cout << ch;
Каким образом это работает внутри? Неявно выделяется память под строковую константу и присваивается указателю? При этом, установить указатель на символьную константу вместо строковой нельзя, почему?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2016, 02:33
Ответы с готовыми решениями:

Предупреждение: формат не является строковой константой, и не заданы аргументы форматирования
Если не считать мусор, то всё работает правильно! Входные данные: 13:00 5...

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

Как выделить память объекту при инициализации конструктора?
подскажите,как выделить память объекту при инициализации конструктора? ...

Не выделяется память
Здравствуйте, пытаюсь выделить память, на одном компьютере работает, на другом...

Не выделяется память
#include&lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; using namespace std;...

2
Croessmah
++Ͻ
14777 / 8453 / 1605
Регистрация: 27.09.2012
Сообщений: 20,804
Записей в блоге: 2
Завершенные тесты: 1
26.02.2016, 02:52 2
Цитата Сообщение от elephants Посмотреть сообщение
Каким образом это работает внутри?
Компилятор где-то положит строковый литерал "string".
И это будет static storage duration, а не dynamic storage duration.
Цитата Сообщение от elephants Посмотреть сообщение
ch = "string";
Затем адрес этого "литерала" присвоится указателю.

Добавлено через 51 секунду
Подробнее о строковых литералах: http://www.cyberforum.ru/blogs/18334/blog97.html
1
elephants
25 / 25 / 15
Регистрация: 30.12.2015
Сообщений: 95
Завершенные тесты: 1
26.02.2016, 03:12  [ТС] 3
Благодарю.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.02.2016, 03:12

Выделяется ли память?
Доброе время суток! У меня есть BYTE *pOutData = NULL; Объясните пожалуйста...

Не выделяется память в динамической памяти
Подскажите пожалуйста , почему при выполнении operator + (вызов 114 строка) не...

Выделяется ли память для ссылки?
Добрый день есть код: char a = 'd'; char *ptr = &amp;a; char &amp;link = a; Вопрос...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru