我正在用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的类型是wchar_t和sizeof(bla) = 2048,而在mymethod中,bla的类型是unsigned short*,并且具有sizeof(bla) = 4。
为什么会这样呢?
我希望将bla传递给该方法,以便该方法可以更改数组,而不是返回已编辑的数组。然而,swprintf不起作用,因为我希望sizeof(bla)是1024而不是4。
干杯。
发布于 2011-09-21 00:15:40
在main中,您正在计算数组的大小:
sizeof(bla); // 1024 * sizeof(unsigned short) = 2048 在您的函数中,如果使用sizeof,您将计算指针的字节大小:
sizeof(bla); //means sizeof (wchar_t *) = 4https://stackoverflow.com/questions/7488315
复制相似问题