Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/22: Рейтинг темы: голосов - 22, средняя оценка - 4.55
2 / 2 / 2
Регистрация: 31.07.2011
Сообщений: 143
1

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

15.10.2011, 21:22. Показов 4362. Ответов 5
Метки нет (Все метки)

Всем здрасти.Если выделять динамически память,например:
C++
1
char *p=new char[20];
и при этом не перегружать оператор new.То верны ли следующие утверждения.
Это динамически выделенная память на самом деле то же самое что
C++
1
char p[100];
т.е.статическая т.к.программа слетает при достаточно большом вводе в этот массив.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.10.2011, 21:22
Ответы с готовыми решениями:

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

Динамическое выделение памяти
Почему распечатка матрицы Matr1 в f2 дает матрицу из ед., а в f1 матрицу из нулей? Ведь адрес...

Динамическое выделение памяти
Имеется: #define Index 1000 typedef int BaseType; typedef BaseType TMemList; typedef ...

Динамическое выделение памяти
Добрый день. Возник вопрос: Как мне узнать адрес последнего байта в выделенной памяти? Я выделил...

5
446 / 209 / 21
Регистрация: 07.10.2011
Сообщений: 462
15.10.2011, 21:26 2
это динамически выделенная память под массив из 20 элементов типа char. естественно, все проверки на то, что программа не выходит за границы массива, возлагаются на программиста
0
2 / 2 / 2
Регистрация: 31.07.2011
Сообщений: 143
15.10.2011, 21:42  [ТС] 3
Это то понятно.Ну например было получено задание реализовать программу которая бы выполняла конкатенацию строк.
И вы объявляете эти массивы так:

C++
1
2
char *ptr=new char[20];
chat *str=new char[20];
На сегодняшний день наприме вам хватает массивов такого размера.А завтра вам понадобятся в 1000 раз больше и вам придётся изменять код программы.Поэтому если я правильно понимаю надо выделять память динамически.
И вот основной вопрос:отличается ли динамически выделенная память,если в ней не используются функцию realloc или перегрузка оператора new от памяти выделенной таким образом:
C++
1
2
char ptr[20];
char str[20];
Добавлено через 41 секунду
Если используются функция realloc программа то не летит!

Добавлено через 14 секунд
Если используются функция realloc программа то не летит!
0
446 / 209 / 21
Регистрация: 07.10.2011
Сообщений: 462
15.10.2011, 21:45 4
если выделять так char *ptr=new char[20]; и больше ничего не делать, то нет
но вообще, при выделении динамической памяти оператором new ее можно же потом перевыделить на больший размер данных, предварительно освободив ее delete
0
быдлокодер
1721 / 908 / 106
Регистрация: 04.06.2008
Сообщений: 5,640
15.10.2011, 23:25 5
Уж не знаю, стоит ли об этом упоминать или нет... Динамическое выделение памяти это там, где разрешит система с помощью API-функций, malloc, в частности. Статическое- в стеке, во время компиляции генерится код, который при исполнении и выделит там эту память. В отладчике всё надо смотреть, там очень наглядно.
0
бжни
2473 / 1682 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
15.10.2011, 23:27 6
Цитата Сообщение от ogcjm124 Посмотреть сообщение
Если используются функция realloc программа то не летит!
с++ это std::vector<char> + resize
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.10.2011, 23:27

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

Динамическое выделение памяти
Добрый день! пытаюсь освоить С++ и дошёл до раздела динамического выделения памяти. Беру пример с...

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

Динамическое выделение памяти
Вот у меня есть 2 примера: char* str = &quot;Немыслимый текст&quot;; char* s = new char ; Тут...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru