我正在使用 Visual Studio 2010 在 Windows 上制作 C 程序。
我正在将一个 wchar_t 数组传递给一个函数。
//in main
wchar_t bla[1024] = L"COM6";
mymethod(bla);
static void mymethod(wchar_t *bla) {
//do stuff
}
我使用调试器观察 bla, sizeof(bla) 并注意到在 main 中, bla 是 type wchar_t
,sizeof(bla) = 2048
但在 mymethod 中, bla 是 typeunsigned short*
并且 has sizeof(bla) = 4
。
为什么会这样?
我想将 bla 传递给该方法,以便该方法可以更改数组而不是返回已编辑的数组。但是,swprintf 不起作用,因为我希望 sizeof(bla) 为 1024 而不是 4。
干杯。