147 / 117 / 37
Регистрация: 27.10.2011
Сообщений: 690
1

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

17.06.2014, 07:25. Показов 1575. Ответов 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.06.2014, 07:25
Ответы с готовыми решениями:

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

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

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

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

4
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
17.06.2014, 07:49 2
Лучший ответ Сообщение было отмечено Nikitko_Cent как решение

Решение

Цитата Сообщение от 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
11 / 11 / 6
Регистрация: 08.06.2012
Сообщений: 28
17.06.2014, 08:00 3
Возвращается адрес на статический блок памяти, его не нужно освобождать.
1
147 / 117 / 37
Регистрация: 27.10.2011
Сообщений: 690
17.06.2014, 08:23  [ТС] 4
Аа, вот оно что.
А что тогда с указателем делать? Просто обнулить его?
0
3254 / 2056 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
17.06.2014, 08:43 5
Ничего не надо делать. И в 4 строчке не нужно разыменовывать. Функция возвращает указатель - указатель и используйте.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2014, 08:43
Помогаю со студенческими работами здесь

Подскажите пожалуйста, как правильно освободить память
Всем ку! Подскажите пожалуйста, как правильно удалить(освободить память) массива array2D. ...

Динамическая матрица. Как правильно освободить память?
int ROWS = NULL; // Объявление переменных для строк и столбцов. int COLS = NULL; cin >> ROWS...

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru