Ниже приведен пример кода, с помощью которого я пытаюсь объяснить проблему:
Среда: VC ++ 2013 (Visual Studio) сборка исполняемого файла.
В функции main
я инициализировал переменную и присвоил ей значение.
После передачи переменной в другую функцию внутри этой функции я инициализирую другую переменную массива и устанавливаю для ее memset значение 0. Когда я это делаю, значения моего параметра также изменяются.
TCHAR == символ (многобайтовый)
void CallFoo(DWORD val){
TCHAR sStr[256]; // val == 111
memset(sStr, 0, sizeof(sStr)); // val == 0 --- Strange Very strange.
....
}
int _tmain(int argc, _TCHAR* argv[]){
DWORD dwValue = 111;
CallFoo(dwValue);
....
}
Пожалуйста, дайте мне знать, что я здесь делаю неправильно.