以下是我试图解释此问题的示例代码:
环境:VC ++ 2013(Visual Studio)构建一个exe。
在main
函数中,我初始化了一个变量并为其赋值。
在将变量传递给另一个函数之后,在该函数内部我正在初始化另一个数组变量并将其memset设置为0.当我这样做时,我的参数值也会被更改。
TCHAR == char(多字节)
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);
....
}
你能告诉我这里做错了吗?