我刚开始用CPP和我一直在关注不同的例子向他们学习,我看到缓冲区大小以不同的方式设置,例如:缓冲区大小:N * sizeof(type)或sizeof(var)? C++
char buffer[255];
StringCchPrintf(buffer, sizeof(buffer), TEXT("%s"), X);
VS
char buffer[255];
StringCchPrintf(buffer, 255*sizeof(char), TEXT("%s"), X);
哪一个是正确的使用方法?
我在喜欢的InternetReadFile,ZeroMemory和的MultiByteToWideChar等功能看到了这一点。
'sizeof(char)'总是返回1,不管平台(和即使实际尺寸较小,就像一个半字节)。 – zneak 2010-05-28 23:44:55
我还应该注意,即使'char'超过8位,sizeof(char)也会返回1。 – zneak 2010-05-28 23:55:22
TCHAR数组的最后一个“sizeof(buffer)”是错误的! 使用_countof()而不是_sizeof(),或者使用sizeof(buffer)/ sizeof(TCHAR)。 – Stefan 2010-05-29 08:28:30