Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Sergikx
1 / 1 / 1
Регистрация: 10.09.2014
Сообщений: 59
1

Функция для очистки памяти, выделенную под массив структур

14.03.2015, 16:28. Просмотров 1033. Ответов 3
Метки нет (Все метки)

Как правильно очистить память в данном случае?
Есть структура
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
struct a
{
    char *a1;//выделял память под строку
    char *a2;
    union Info
    {
        struct b
        {
            char *b1;//выделял память под строку
        }bb;
        struct c
        {
            char *c1;//выделял память под строку
            char *c2;
        }cc;
    }info;
}*aa;//выделял память под массив структур
зы. очистка памяти в отдельной функции
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2015, 16:28
Ответы с готовыми решениями:

Почему не очищает память, выделенную под массив структур
#include <cstdlib> #include <iostream> using namespace std; const int...

Выделение памяти под массив структур
Добрый день. Подскажите в чём ошибка. #pragma hdrstop #pragma argsused...

Выделение памяти под массив структур
Возникла проблема в том что не могу никак эфективно реализовать выделение...

Выделение динамической памяти под массив структур
Здравствуйте! Пытаюсь выделить память под массив структур, считать с...

Выделение динамической памяти под массив структур
Добрый день, уважаемые! Пишу функцию выделения памяти под массив структур. Но...

3
zss
Модератор
Эксперт С++
7178 / 6677 / 4226
Регистрация: 18.12.2011
Сообщений: 17,622
Завершенные тесты: 1
14.03.2015, 16:40 2
Лучший ответ Сообщение было отмечено Sergikx как решение

Решение

Цитата Сообщение от Sergikx Посмотреть сообщение
char *b1;//выделял память под строку
}bb;
struct c { char *c1;//выделял память под строку
c1 и b1 лежат в одном месте.
Когда выделяете память под c1 портите адрес b1.
Так и задумано?

А так порядок должен быть такой
1. В каждом элементе aa[i] удаляете c1,c2,a2,a1
2. Удаляете aa.

b1 удалять не нужно по вышеуказанной причине.
1
Sergikx
1 / 1 / 1
Регистрация: 10.09.2014
Сообщений: 59
14.03.2015, 16:52  [ТС] 3
zss, смысл в следующем:в зависимости от a2 будет выделяться память под b1, либо под c1
0
zss
Модератор
Эксперт С++
7178 / 6677 / 4226
Регистрация: 18.12.2011
Сообщений: 17,622
Завершенные тесты: 1
14.03.2015, 16:57 4
Но в union у Вас хранятся не данные а УКАЗАТЕЛИ.
Соответственно без разницы под что выделять память.
Адрес b1 будет синоним адреса c1
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2015, 16:57

Динамическое выделение памяти под массив структур (new/delete)
Люди добрые, подскажите пожалуйста, где в моем коде закралась ошибка? Интернет...

Вылетает функция очистки памяти двумерного динамического массива
Я написал функции добавления и удаления столбцов и строчек двумерного...

Не могу удалить динамически выделенную память под массив
Здравствуйте. Изучил сегодня динамическое выделение памяти и не могу ее...


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

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

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