鉴于以下计划,
#include <iostream>
using namespace std;
void foo( char a[100] )
{
cout << "foo() " << sizeof( a ) << endl;
}
int main()
{
char bar[100] = { 0 };
cout << "main() " << sizeof( bar ) << endl;
foo( bar );
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出
main() 100
foo() 4
Run Code Online (Sandbox Code Playgroud)
假设我有一个叫做的宏LengthOf(array):
sizeof array / sizeof array[0]
Run Code Online (Sandbox Code Playgroud)
当我制作一个23号的新阵列时,我不应该回来23 LengthOf吗?
WCHAR* str = new WCHAR[23];
str[22] = '\0';
size_t len = LengthOf(str); // len == 4
Run Code Online (Sandbox Code Playgroud)
为什么len == 4?
更新:我做了一个错字,这是一个WCHAR*,而不是一个WCHAR**.