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

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

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

Освобождение памяти в C++ - C++

27.02.2014, 20:39. Просмотров 469. Ответов 1
Метки нет (Все метки)

Добрый день!
В моей программе в функции выделяется память (new char) под символьный массив, который является элементом структуры. Это делается через вектор, в который помещены элементы структуры. Затем уже функции main( ) требуется освободить память, но не могу понять как это сделать. Нужно создать указатель на первый элемент или как то еще?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
struct TestA 
{
     char faculty[lenname]; 
     int examn[2*lenex-2]; 
     char * letters; 
     double sredn; 
}
 
int _tmain(int argc, _TCHAR* argv[])
{ 
    setlocale(LC_ALL,"Russian");
    vector<TestA> vec1;
        int  massGrades [numarr]; 
 
    
        makelett (vec1, massGrades);
    
    //здесь требуется освободить память
 
    
...
            vec1.clear();
};
 
...
void makelett(vector<TestA>& vect, int *arr)
 {
for (int i=0; i<numarr-1; i++)
            vect[i].letters = new char (arr[i]);
...
}
Помогите пожалуйста, на что надо создать указатель и что надо написать после delete[]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2014, 20:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Освобождение памяти в C++ (C++):

резервирование памяти/освобождение памяти для трехмерного массива - C++
Необходимо создать трехмерный массив (A), в котором элементы вдоль направления Z выли бы выровнены по 16 байт. Есть две проблемы: ...

Освобождение памяти - C++
Добрый день. Пишу в рубрику &quot;Вопросы начинающих по С/С++&quot; посему вопрос глупый :) И все же, есть такой код //offset - массив...

с++ Освобождение памяти - C++
Здравствуйте, объявляю в классе: А ** а; Далее выделяю память в функции: а=0; a = new A*; for(uint i=0;i&lt;5;++i) { a =...

Освобождение памяти - C++
Маленький вопросик, как правильно освобождать память выделенную под vector&lt;...&gt;, деструктором ~vector() или методом clear() ?

Освобождение памяти - C++
Есть многопоточное приложение. Создается глобальная структура: Пример из msdn. typedef struct _MyData { int val1; ...

Освобождение памяти - C++
Товарищи,недавно баловался в Microsoft VS,готовился к экзаменам,писал небольшие програмки с использованием динамических массивов.Память под...

1
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
27.02.2014, 21:31 #2
C++
1
2
3
4
5
6
7
8
void deletelett(vector<TestA>& vect)
{
  for (int i=0; i<numarr-1; i++)
  {
    delete vect[i].letters;
    vect[i].letters = 0;
  }
}
не совсем понятно зачем выделять один символ.
если выделять массив, то
C++
1
2
3
vect[i].letters = new char [arr[i]];
удалять потом так:
    delete [] vect[i].letters;
еще лучше использовать вместо этого std::string или std::vector<char> - само поудаляется.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2014, 21:31
Привет! Вот еще темы с ответами:

Освобождение памяти - C++
Похоже что проблема с освобождением памяти. У меня есть абстрактный класс CObject и его потомок CMeteor, в котором реализованы...

Освобождение памяти - C++
Есть класс, в котором я выделяю память с помощью new. В деструкторе класса я с помощью delete освобождаю память, но у меня вылетает ошибка...

Освобождение памяти - C++
Как сделать, чтобы при вызове деструктора экземпляра i класса image, вызвался и деструктор класса image_bmp? class image { public:...

Освобождение памяти - C++
Собственно есть простенький класс class Human { public: Human ( ); void ptintHuman(); private: static long...


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

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

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