Я пытаюсь получить простой кусок кода, который я нашел на сайте, чтобы работать в VC++ 2010 на Windows Vista 64:Стек вокруг переменной «АБВ» был поврежден
#include "stdafx.h"
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
DWORD dResult;
BOOL result;
char oldWallPaper[MAX_PATH];
result = SystemParametersInfo(SPI_GETDESKWALLPAPER, sizeof(oldWallPaper)-1, oldWallPaper, 0);
fprintf(stderr, "Current desktop background is %s\n", oldWallPaper);
return 0;
}
это компилировать, но когда я бегу, я всегда получаю эту ошибку:
Run-Time Check Failure #2 - Stack around the variable 'oldWallPaper' was corrupted.
я не уверен, что происходит не так, но я заметил, что значение oldWallPaper выглядит что-то вроде «C \ 0: \ 0 \ 0U \ 0s \ 0e \ 0r \ 0s [...] "- Мне интересно, откуда все из \ 0s.
- Мой друг был скомпилирован на Windows XP 32 (также VC++ 2010) и способен работать без проблем
любые подсказки/намеки/мнения?
спасибо
Вы не должны использовать 'sizeof' в массиве, он будет _not_ работать с массивом, который у вас есть' malloc' 'd. – bobobobo