Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > wchar_t* pathDir; Запонение переменной


Автор: malor 4.4.2012, 22:05
Код
wchar_t* pathEvent;
wchar_t* pathDir;
......

void GetPathSession()
{
    pathEvent = (wchar_t *)malloc(100);
    pathEvent = _wgetenv(_T("APPDATA"));
    wcscat(pathEvent, _T("\\Winamp\\winamp.ini"));
    
    pathDir = (wchar_t *)malloc(100);
    pathDir = _wgetenv(_T("APPDATA"));
    wcscat(pathDir, _T("\\Winamp\\"));
}


user posted image

MSVS2008

Автор: volatile 4.4.2012, 23:26
Цитата(malor @  4.4.2012,  22:05 Найти цитируемый пост)

    pathDir = (wchar_t *)malloc(100);  // Получили память                                     
    pathDir = _wgetenv(_T("APPDATA")); // Потеряли память  smile (утечка), получили адрес APPDATA    
    wcscat(pathDir, _T("\\Winamp\\")); // Модифицируем данные находящиеся в APPDATA, а этого делать нельзя
}


Цитата

It is not safe to modify the value of the environment variable using the returned pointer.


Автор: Dem_max 5.4.2012, 04:16
Код

pathEvent = (wchar_t *)malloc(100);

Интересно как ты думаешь на сколько символов wchar_t ты выделил буффер ??

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)