Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
856 / 537 / 288
Регистрация: 21.11.2012
Сообщений: 1,518
1

Динамический массив

04.05.2013, 16:08. Просмотров 376. Ответов 6
Метки нет (Все метки)

есть примерно такая функция:

C++
1
2
3
4
5
6
7
8
9
10
int *funktion (int size){
 
int *g = new int [size];
 
 
... //функция работы с дин. массивом
 
 
return g;
}
таким образом я возвращаю из функции динамический массив. все данные этого массива присваиваются далее в программе другому массиву. Так вот, подскажите пожалуйста как мне освободить память для дин. массива, созданного в функции.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.05.2013, 16:08
Ответы с готовыми решениями:

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

Динамический массив ,элементами которого являются объекты класса динамический массив
Доброго времени суток, захотел создать динамический массив ,элементами которого являются объекты...

Создать динамический класс Book, содержащий динамический массив Authors
Мне нужно написать программу,а я не знаю как ее написать. Знаю, тут люди за кого-то не делают,...

Скопировать динамический массив в другой массив только с положительными элементами из первого
Пользователь вводит размер массива и сам массив. Программа копирует в другой массив только...

6
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 18
04.05.2013, 16:10 2
delete [] g;
если не ошибаюсь
0
856 / 537 / 288
Регистрация: 21.11.2012
Сообщений: 1,518
04.05.2013, 16:19  [ТС] 3
ну да, только где его писать?
0
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 18
04.05.2013, 16:21 4
там где заканчиваешь работать с массивом, я обычно пишу в конце

C++
1
2
3
4
5
6
7
delete [] a;
delete [] q;
 
system ("pause");
 
return 0;
}
0
Грамотный. Безпорно.
16619 / 9658 / 1863
Регистрация: 27.09.2012
Сообщений: 23,958
Записей в блоге: 2
04.05.2013, 16:26 5
Цитата Сообщение от hamin Посмотреть сообщение
ну да, только где его писать?
Там, где станет ясно, что данная память более не понадобится.

А вообще, возвращать буфера наружу не есть хорошо.
0
856 / 537 / 288
Регистрация: 21.11.2012
Сообщений: 1,518
04.05.2013, 16:28  [ТС] 6
ну так если я возвращаю массив из функции программа его не увидит с именем g,
к примеру:

C++
1
2
3
4
5
6
7
8
9
10
main () {
size = 10;
int *h = new int [size];
 
h = funktion (size);
 
delete [] h; 
 
return 0;
}
как теперь освободить память массива, созданного в функции?? если напишу delete [] g; выдаст ошибку, так как область видимости массива в пределах функции
0
Грамотный. Безпорно.
16619 / 9658 / 1863
Регистрация: 27.09.2012
Сообщений: 23,958
Записей в блоге: 2
04.05.2013, 16:31 7
У Вас же написано:
Цитата Сообщение от hamin Посмотреть сообщение
C++
1
delete [] h;
Оператору delete[] важен адрес начала выделенной памяти, а не имя переменной.

Добавлено через 36 секунд
Только тут у Вас утечка.

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
main () {
size = 10;
int *h = new int [size];//Выделили память
//Здесь нужен delete [] h;
h = funktion (size);//Перезаписали указатель, теперь у нас нигде нет адреса выделенной до этого памяти - утечка
 
delete [] h;//Удаляем h. Первое же выделение так и остается висеть. 
 
return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2013, 16:31

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Можно ли в классе создавать массив переменной длинны. Например динамический массив?
Динамические массивы привлекают больше. :)

Заполнить динамический массив из файла и записать массив обратно в файл
Подскажите пожалуйста функцию которая будет заполнять Динамический массив из файла и обратную...

Написать функцию принимающую массив и возвращающую указатель на динамический массив
Написать функцию принимающую массив и возвращающую указатель на динамический массив содержащий...

Динамический массив: целое число разложить на массив простых множителей
Доброго времени суток всем. Целое число необходимо разложить на массив простых множителей....


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

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

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