我剛開始用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