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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.95
ogcjm124
2 / 2 / 0
Регистрация: 31.07.2011
Сообщений: 143
#1

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

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

Всем здрасти.Если выделять динамически память,например:
C++
1
char *p=new char[20];
и при этом не перегружать оператор new.То верны ли следующие утверждения.
Это динамически выделенная память на самом деле то же самое что
C++
1
char p[100];
т.е.статическая т.к.программа слетает при достаточно большом вводе в этот массив.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2011, 21:22     Динамическое выделение памяти
Посмотрите здесь:

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

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

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

Динамическое выделение памяти - C++
Первый раз столкнулся с такой задачей... Дали лабораторную работу: Разработать приложения, реализующее следующие функции: 1) Выделяет...

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
aeshes
440 / 203 / 13
Регистрация: 07.10.2011
Сообщений: 462
15.10.2011, 21:26     Динамическое выделение памяти #2
это динамически выделенная память под массив из 20 элементов типа char. естественно, все проверки на то, что программа не выходит за границы массива, возлагаются на программиста
ogcjm124
2 / 2 / 0
Регистрация: 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 программа то не летит!
aeshes
440 / 203 / 13
Регистрация: 07.10.2011
Сообщений: 462
15.10.2011, 21:45     Динамическое выделение памяти #4
если выделять так char *ptr=new char[20]; и больше ничего не делать, то нет
но вообще, при выделении динамической памяти оператором new ее можно же потом перевыделить на больший размер данных, предварительно освободив ее delete
kravam
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
15.10.2011, 23:25     Динамическое выделение памяти #5
Уж не знаю, стоит ли об этом упоминать или нет... Динамическое выделение памяти это там, где разрешит система с помощью API-функций, malloc, в частности. Статическое- в стеке, во время компиляции генерится код, который при исполнении и выделит там эту память. В отладчике всё надо смотреть, там очень наглядно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2011, 23:27     Динамическое выделение памяти
Еще ссылки по теме:

Динамическое выделение памяти - C++
Пусть есть класс с полем char *p. Если для поля p выделяется память динамически, как для массива и для самих объектов память выделяется...

Динамическое выделение памяти - C++
Объясните пожалуйста.Не могу понять в чём разница между malloc,calloc/free и new/delete

Динамическое выделение памяти - C++
Доброго времени суток всем!:) Есть такая проблема... Дан класс полином. который содержит закрытые члены коэффициент и степень полинома, а...

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

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

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


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

Или воспользуйтесь поиском по форуму:
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
15.10.2011, 23:27     Динамическое выделение памяти #6
Цитата Сообщение от ogcjm124 Посмотреть сообщение
Если используются функция realloc программа то не летит!
с++ это std::vector<char> + resize
Yandex
Объявления
15.10.2011, 23:27     Динамическое выделение памяти
Ответ Создать тему
Опции темы

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