Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
26 / 26 / 15
Регистрация: 30.12.2015
Сообщений: 95
1

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

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

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

Когда выделяется память под переменные - во время объявления или инициализации
Привет! Вопрос такой: когда выделяется память под переменные - во время объявления или...

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

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

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

2
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
26.02.2016, 02:52 2
Цитата Сообщение от elephants Посмотреть сообщение
Каким образом это работает внутри?
Компилятор где-то положит строковый литерал "string".
И это будет static storage duration, а не dynamic storage duration.
Цитата Сообщение от elephants Посмотреть сообщение
ch = "string";
Затем адрес этого "литерала" присвоится указателю.

Добавлено через 51 секунду
Подробнее о строковых литералах: https://www.cyberforum.ru/blogs/18334/blog97.html
1
26 / 26 / 15
Регистрация: 30.12.2015
Сообщений: 95
26.02.2016, 03:12  [ТС] 3
Благодарю.
0
26.02.2016, 03:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.02.2016, 03:12
Помогаю со студенческими работами здесь

Каким образом тИЦ 700 при 67 бэках?
Каким образом получился тИЦ 700 при 67 ссылающихся сайтах?

Каким образом при интегрировании происходит замена dx, например, на d(kx+b)
Подскажите, пожалуйста! Каким образом при интегрировании происходит замена dx, например, на...

Создаётся ли копия при инициализации new Function() и как сильно она нагружает процессор и память ?
Всем привет ! собственно сабж , но для более точного понятия попробую описать от А до Я хотя у...

Каким символом и каким образом отобразить пробел в document.write
Вот код var mailExample = /^(+)@((+\.)+{2,6})$/; var Str = &quot;hoolio934@mail.ru&quot;; var Str1 =...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru