正确使用GetComputerName - 我是否需要为null字符保留额外的空间

Che*_*eng 4 c++

我想知道,GetComputerName的正确用法是什么.应该是吗?

TCHAR computerName[1024 + 1];
DWORD size = 1024;
GetComputerName(computerName, &size);
Run Code Online (Sandbox Code Playgroud)

要么

TCHAR computerName[1024];
DWORD size = 1024;
GetComputerName(computerName, &size);
Run Code Online (Sandbox Code Playgroud)

Gre*_*ill 11

lpnSize参数中传递的大小反映了缓冲区中可用的空间量,包括空终止符的空间.您的任何一个语句都可以正常工作,因为在第一个语句中,您只需要分配比您所说的字节多一个字节.

你可能想要使用MAX_COMPUTERNAME_LENGTH,而不是1024.

TCHAR computerName[MAX_COMPUTERNAME_LENGTH + 1];
DWORD size = sizeof(computerName) / sizeof(computerName[0]);
GetComputerName(computerName, &size);
Run Code Online (Sandbox Code Playgroud)