Форум программистов, компьютерный форум CyberForum.ru

Указатель на строковую константу - C++

Восстановить пароль Регистрация
 
 
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
07.09.2013, 20:28     Указатель на строковую константу #1
Здравствуйте уважаемые форумчане!

Подскажите пожалуйста является ли эта ситуация выходом за пределы массива или размер массива автоматически подгоняется?:
C++
1
2
char * ptr = new char;
ptr = "I am massive";
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2013, 20:28     Указатель на строковую константу
Посмотрите здесь:

Преобразование в указатель на указатель на константу C++
C++ Как получить ссылку на указатель или указатель на указатель в массиве?
Указатель на строковую константу. В чем отличие двух приведенных примеров C++
Приведение любого двумерного массива к типу указатель на указатель C++
Реализация двоичных деревьев поиска: Зачем в параметрах функции используется указатель на указатель C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
08.09.2013, 02:16     Указатель на строковую константу #21
Цитата Сообщение от alex_x_x Посмотреть сообщение
b - в хипе (0x602010 лежит между 0x602000 0x623000, что помечено как хип)
не совсем так в куче у тебя 100 интов, выделенная память а b, указатель на выделенную память, лежит в стеке
вот она сохраняется
Цитата Сообщение от alex_x_x Посмотреть сообщение
0x00000000004006a5 <main()+25>: movl * $0x64,(%rax)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fit
14 / 14 / 0
Регистрация: 20.04.2010
Сообщений: 102
08.09.2013, 02:17     Указатель на строковую константу #22
Цитата Сообщение от alex_x_x Посмотреть сообщение
здесь "hello world" тоже в хипе? или где?
C++
1
2
3
4
5
6
#include <cstdio>                  
                                   
int main ()                        
{                                  
    printf ("%s", "hello world");  
}
о каком heap может идти речь, если в обоих ваших программах отсутствует new?))
моя реплика, которую вы цитировали относилась к вопросу автора по своему первому коду:
C++
1
char * ptr = new char;
моя ошибка в том, что я вслед за автором назвал это строковой константой. хотя это обычный char массив/
как я уже сказал, все статические переменные и константы лежат в сегменте данных
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
08.09.2013, 02:22     Указатель на строковую константу #23
Цитата Сообщение от ValeryS Посмотреть сообщение
не совсем так в куче у тебя 100 интов, выделенная память а b, указатель на выделенную память, лежит в стеке
вот она сохраняется
пардон, я распечатываю значение b, которое указывает на адрес в хипе
я не печатаю адрес b

Цитата Сообщение от fit Посмотреть сообщение
моя ошибка в том, что я вслед за автором назвал это строковой константой. хотя это обычный char массив/
как я уже сказал, все статические переменные и константы лежат в сегменте данных
ок, тогда договоримся, что строковые литералы лежает не в хипе
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2013, 02:24     Указатель на строковую константу
Еще ссылки по теме:

Функция, получающая указатель на обычную функцию, получает указатель на метод класса C++
C++ Указатель на строковую константу
C++ Как правильно удалять выделенную память под указатель на указатель?

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

Или воспользуйтесь поиском по форуму:
fit
14 / 14 / 0
Регистрация: 20.04.2010
Сообщений: 102
08.09.2013, 02:24     Указатель на строковую константу #24
Цитата Сообщение от ValeryS
а b, указатель на выделенную память, лежит в стеке
именно так. иначе быть и не может. в стеке - адрес первого элемента (указатель). в heap непосредственно сам массив

Добавлено через 1 минуту
Цитата Сообщение от alex_x_x
ок, тогда договоримся, что строковые литералы лежает не в хипе
не в хипе. я применил неправильный термин
Yandex
Объявления
08.09.2013, 02:24     Указатель на строковую константу
Ответ Создать тему
Опции темы

Текущее время: 06:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru