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

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

Войти
Регистрация
Восстановить пароль
 
ququ_smile
1 / 1 / 0
Регистрация: 28.01.2013
Сообщений: 162
#1

Динамическое выделение памяти - C++

21.09.2013, 14:43. Просмотров 331. Ответов 3
Метки нет (Все метки)

Вот у меня есть 2 примера:
C++
1
2
char* str = "Немыслимый текст";
char* s = new char [strlen(str)+1];
Тут указатель s будет указывать на блок в памяти, который по размеру равен строке, на которую указывает указатель str и +1 символ для нулевого символа.

C++
1
2
char* str = new char;
std::cin>>str;
А вот под что выделяется память так? Хоть такое и работает но я не могу понять на какой блок памяти будет указывать указатель str с самого начала и почему он способен вместить то, что в него запишут после инициализации?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2013, 14:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамическое выделение памяти (C++):

Распределение памяти. Динамическое выделение памяти - C++
an-1 an-2 ... a2

Динамическое выделение памяти - C++
Здравствуйте, у меня вопросик такой: почему при "динамическом выделении памяти в строку" у меня вылетает программа!? а при обычном...

Динамическое выделение памяти - C++
Имеется такая вот задача ! Нужно сделать что бы память выделялась динамически,а не на этапе компиляции!!! Какие будут предложения ??? ...

Динамическое выделение памяти - C++
Всем привет. Научите, пожалуйста, правильно пользоваться динамическим выделением памяти. Допустим, у меня есть функция, где я пытался...

Динамическое выделение памяти - C++
Использовать динамическое выделение памяти для программы : #include "stdafx.h" #include <iostream> #include <iomanip> #include...

Динамическое выделение памяти - C++
Не могу разобраться с динамическим выделением памяти. Объект - учреждение. Имеет параметры - название, тип, год основания, количество...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
21.09.2013, 15:09 #2
Вообще подозрительный код. std::cin ничего не известно о размере памяти, на которую ссылается указатель str, значит, по идее произойдет переполнение буффера. Но пробовал запускать в отладчике и он молчал...
0
ququ_smile
1 / 1 / 0
Регистрация: 28.01.2013
Сообщений: 162
21.09.2013, 15:24  [ТС] #3
А если бы вы определяли строку через указатель, то как бы вводили её из клавиатуры?
0
Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
21.09.2013, 15:29 #4
Лично я бы вот так. cin.getline(str, STR_SIZE)
Где STR_SIZE - размер буфера str. В примере выше он равен единичке
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2013, 15:29
Привет! Вот еще темы с ответами:

динамическое выделение памяти - C++
дана целочисленная прямоугольная матрица. определить: 1) количество строк, не содержащих ни одного нулевого элемента; 2) максимальное...

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

Динамическое выделение памяти - C++
Всем привет, читал про динам. выделение памяти и тут возник вопрос. Так как для новичков пишут книги не очень глубоко, то в книге ответа на...

Динамическое выделение памяти - C++
Создайте динамический массив, хранящий в первой строке имя, а во второй - телефон. Организуйте поиск по имени и по номеру телефона и...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.09.2013, 15:29
Ответ Создать тему
Опции темы

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