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

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

Войти
Регистрация
Восстановить пароль
 
Nikitko_Cent
144 / 114 / 12
Регистрация: 27.10.2011
Сообщений: 690
Завершенные тесты: 3
#1

Как правильно освободить память - C++

17.06.2014, 07:25. Просмотров 427. Ответов 4
Метки нет (Все метки)

Написал вот такой костыль:
C++
1
2
3
4
5
6
7
wchar_t* getDate()
{
    time_t seconds = time(NULL);
    tm timeinfo = *(localtime(&seconds));
 
    return _wasctime(&timeinfo);
};
Теперь его использую в main:
C++
1
2
3
4
5
6
7
wchar_t *date=getDate();
 
if (date!=nullptr)
{
    ...
        
};
Как правильно освободить область памяти, на которую указывает date? За delete и delete [] получаю по рукам.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2014, 07:25
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как правильно освободить память (C++):

Как правильно освободить память - C++
Есть функция char* md5(const char*). Как освободить память выделенную ею? #include <openssl\md5.h> char* md5(const char* text) { ...

Как правильно освободить память - C++
Здравствуйте все! Подскажите, как правильно освобождать память, выделенную под массив оператором new? int *Arr = new int; ... delete...

Как правильно освободить память - C++
Здрасте! (Тема: Шаблоны функций.) Не могу правильно написать метод для освобождения памяти. В мейне делаю все необходимые мне...

Как правильно освободить память деструктором? - C++
Не могу понять, как освободить память деструктором... В общем, я объявляю в private динамический массив на 3 элемента, после чего память от...

Подскажите пожалуйста, как правильно освободить память - C++
Всем ку! Подскажите пожалуйста, как правильно удалить(освободить память) массива array2D. Array1D<Elem>* array2D = ...

Как правильно освободить память после работы с динамическим массивом - C++
Здравствуйте! Помогите понять в чём проблема при освобождении памяти. Простой пример: #define _CRT_SECURE_NO_WARNINGS #include...

4
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
17.06.2014, 07:49 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Nikitko_Cent Посмотреть сообщение
Как правильно освободить область памяти, на которую указывает date? За delete и delete [] получаю по рукам.
asctime uses a single, statically allocated buffer to hold the return string. Each call to this function destroys the result of the previous call.

Не нужно ничего освобождать, нужно копировать строку, если она нужна где-то дальше. Функция использует статический буфер.
1
Hrapvlesu
11 / 11 / 2
Регистрация: 08.06.2012
Сообщений: 28
17.06.2014, 08:00 #3
Возвращается адрес на статический блок памяти, его не нужно освобождать.
1
Nikitko_Cent
144 / 114 / 12
Регистрация: 27.10.2011
Сообщений: 690
Завершенные тесты: 3
17.06.2014, 08:23  [ТС] #4
Аа, вот оно что.
А что тогда с указателем делать? Просто обнулить его?
0
0x10
2548 / 1728 / 264
Регистрация: 24.11.2012
Сообщений: 4,349
17.06.2014, 08:43 #5
Ничего не надо делать. И в 4 строчке не нужно разыменовывать. Функция возвращает указатель - указатель и используйте.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2014, 08:43
Привет! Вот еще темы с ответами:

Как освободить память? - C++
подскажите как правильно освободить память,спасибо заранее))) #include "stdafx.h" #include <stdio.h> #include <string.h> ...

как освободить память? - C++
Здравствуйте!!! Почему-то никак не освобождается память, выделенная оператором new под двумерный массив типа char,- как только идет...

Как освободить память быстро? - C++
Функция malloc неправильно работает...Заполняется память быстро,а очищается долго,с чем это связано,кто знает #include<iostream> ...

Как освободить память из-под вектора объектов? - C++
vector<TObj*> obj; obj.push_back(new obj()); obj.erase(obj.begin()+indx);//удаляю указатель который указывал на объект "Для...


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

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

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