Я только начиная с СРР и я следовал различные примеры, чтобы учиться у них, и я вижу, что размер буфера устанавливается по-разному, например:Размер буфера: N * sizeof (тип) или 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 в C, независимо от платформы (и даже если фактический размер меньше, как кусок). – zneak
Следует также отметить, что 'sizeof (char)' возвращает 1 даже в тех случаях, когда 'char' составляет более 8 бит. – zneak
Последний «sizeof (buffer)» для массива TCHAR неверен! Либо используйте _countof() вместо _sizeof(), либо используйте sizeof (buffer)/sizeof (TCHAR). – Stefan