Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
elephants
25 / 25 / 6
Регистрация: 30.12.2015
Сообщений: 95
Завершенные тесты: 1
#1

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

26.02.2016, 02:33. Просмотров 165. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Каким образом выделяется память при инициализации строковой константой указателя (C++):

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

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

Как выделить память объекту при инициализации конструктора? - C++
подскажите,как выделить память объекту при инициализации конструктора? #pragma once class Catalog; class Menu { void...

Не выделяется память - C++
#include&lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; using namespace std; class DynArray { public: int size, end; int...

Не выделяется память - C++
Здравствуйте, пытаюсь выделить память, на одном компьютере работает, на другом нет, возвращает 0x00000000, хотя память имеется в наличии. В...

Выделяется ли память? - C++
Доброе время суток! У меня есть BYTE *pOutData = NULL; Объясните пожалуйста что происходит в следующем: strcpy(cToken, &quot;Задан...

2
Croessmah
Ушел
13777 / 8027 / 927
Регистрация: 27.09.2012
Сообщений: 19,784
Записей в блоге: 3
Завершенные тесты: 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 / 6
Регистрация: 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
Привет! Вот еще темы с ответами:

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

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

На каком этапе выделяется статическая память - C++
Если я создаю синглтон Маейрса: class Singleton { public: static Singleton&amp; Instance() { static Singleton...

Неправильно выделяется память для массива - C++
не правильно выделяется память для массива double *CDispersia_SPMDlg::Function_Spectr(double * _y_noise, int yslovie, double...


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

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

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