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

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

Войти
Регистрация
Восстановить пароль
 
[Федя]
9 / 9 / 1
Регистрация: 01.02.2010
Сообщений: 35
#1

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

15.11.2011, 22:08. Просмотров 1109. Ответов 4
Метки нет (Все метки)

Добрый вечер! У меня есть следующий вопрос:
Допустим я выделил для некоторой строки память
C++
1
2
char *p;
p = new char [10];
Поработал какое-то время с этими 10 символами, понадобилось расширить область до 15 символов (что бы при этом за p[9] сразу следовали новые добавленные элементы p[10], p[11], ...)

Подскажите пожалуйста, как мне это сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2011, 22:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как добавить новой динамической памяти к уже выделенной (C++):

Как можно узнать размер выделенной динамической памяти, на которую ссылается указатель a? - C++
Скажем я в какой-то момент выделяю память под массив: int *a = new int ; затем память может изменяться как-то и конечный размер мне не...

Выделение и удаление памяти, выделенной для динамической строки - C++
Данная функция производит ввод и собственно контроль ввода (размер массива от 1 до 20, иначе должна выдавать ошибку; при вводе букв также...

Как уменьшить размер выделенной памяти - C++
Доброе утро! пишет: переопределение формального параметра "text" :( подскажите пожалуйста как уменьшить размер выделенной памяти под...

Как склеить два куска динамически выделенной памяти? - C++
Есть такой код char *arr = (char *) malloc(1); char *plus = (char *) malloc(25); arr = memcpy(arr + 1, plus, 25); Вопрос: можно ли...

Как обнулить указатель на одну ячейку в динамически-выделенной памяти? - C++
Выделю память под 10 элементов: int* p = new int; Наполняю значениями: for(int i = 0; i<10; i++) { p = i; } Можно...

Как создать объект класса в динамической памяти? - C++
привет. я так понял, можно создать объект в динамической области памяти. либо просто создать объект обычным способом, но чтобы его...

4
Петррр
5972 / 3409 / 337
Регистрация: 28.10.2010
Сообщений: 5,926
15.11.2011, 22:13 #2
C++
1
2
3
4
5
6
7
8
char *p;
p = new char [10];
/*
*/
p = new char [15];
/*
*/
delete [] p;
1
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
15.11.2011, 22:15 #3
Петррр, и получим утечку памяти

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <algorithm>
 
char* p = new char [10];
/*
*/
char* tmp = new char [15];
std::copy(p, p + 10, tmp);
delete [] p;
p = tmp;
/*
*/
delete [] p;
1
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
15.11.2011, 22:38 #4
C++
1
2
3
4
5
6
7
8
char *p;
p = new char [10];
...
char *t = new char[15];
strcpy(t, p);
delete [] p;
p = t;
// продолжаем запись в p
1
crisp
0 / 0 / 0
Регистрация: 16.07.2016
Сообщений: 11
30.09.2016, 20:36 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
//#include <stdlib.h> для C
#incude <cstdlib>
 
//выделяем память;
char * p = (char*) malloc(10*sizeof(char)); 
//если система не может выделить память, возвращается NULL;        
if (p==NULL) exit (1);        
//увеличиваем память;
p = (char *) realloc (p,15*sizeof(char));
 
//освобождаем память
free(p);
0
30.09.2016, 20:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2016, 20:36
Привет! Вот еще темы с ответами:

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

Двумерный массив в динамической памяти как поле класса - C++
Здравствуйте! Вот так можно описать двумерный массив в дин.памяти. class nameClass { public: MapPlaceTp ** roomMap; ...

Почему в данном случае работа с заранее выделенной памятью медленнее чем с динамической? - C++
Написал функцию которая на основе списка выделяет память и при каждом вызове возвращает указатель на следующий элемент для объекта. Код...

Как обратиться к значениям двухмерного массива созданного с выделением динамической памяти? - C++
Здравствуйте. Есть такой код (не полностью) #include &lt;iostream&gt; #include &lt;windows.h&gt; #include &lt;ctime&gt; #include &lt;fstream&gt; ...


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

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

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