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

标签 c++

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

TCHAR computerName[1024 + 1];
DWORD size = 1024;
GetComputerName(computerName, &size);

TCHAR computerName[1024];
DWORD size = 1024;
GetComputerName(computerName, &size);

最佳答案

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

您可能想要使用 MAX_COMPUTERNAME_LENGTH,它远小于 1024。

TCHAR computerName[MAX_COMPUTERNAME_LENGTH + 1];
DWORD size = sizeof(computerName) / sizeof(computerName[0]);
GetComputerName(computerName, &size);

关于c++ - 正确使用 GetComputerName - 我是否需要为空字符保留额外的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4721429/

相关文章:

c++ - 如果元素存在于对 vector 中,则在类中查找

c++ - Boost.Python 和 Boost.Signals2 : Segmentation faults

类似于c++ map的java库

c++ - 如何将 STL vector 的引用内容复制到另一个 STL vector ?

c++ - Valgrind Massif工具部队快照

c++ - typedef 和 enum 有什么区别

c++ - 编辑/删除 protected 注册表键值

c++ - 在 Qt 的单个小部件中添加复选框列表

c++ - 复制时跟踪所属类的 `this` 的数据成员

java - 为什么 A->B 不构成 List<A>->List<B>?这不会消除对通配符的需要吗?