当函数变量初始化时,VC ++参数值在函数内部发生变化

时间:2018-05-09 14:04:45

标签: c++ visual-c++

以下是我试图解释此问题的示例代码:

环境: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);
 ....
}
你能告诉我这里做错了吗?

0 个答案:

没有答案