c++ - PROCESSENTRY32 .dwSize 和 sizeof

标签 c++ size byte

我阅读了这 2 个关于每个“功能”的解释,看起来它们是一样的,尽管它们不是

尺寸:

“结构的大小,以字节为单位。”

大小:

“sizeof(x) 返回变量或类型 x 占用的内存量(以字节为单位)”

我的减速:

PROCESSENTRY32 entry;
cout >> entry.dwSize >> endl;
cout >> sizeof(entry) >> endl;

为什么 entry.dwSize 和 sizeof(entry) 不一样? 根据定义 entry.dwSize 应该给我以字节为单位的条目大小 和 sizeof(entry) 应该给我以字节为单位的条目大小(这是结构,所以基本相同)

最佳答案

来自MSDN Documentation for PROCESSENTRY32 :

dwSize
The size of the structure, in bytes. Before calling the Process32First function, set this member to sizeof(PROCESSENTRY32). If you do not initialize dwSize, Process32First fails.

所以dwSize应该等于sizeof(PROCESSENTRY32),但是创建一个struct并没有初始化它的成员,所以会有垃圾在所有这些中,直到您设置它们。

关于c++ - PROCESSENTRY32 .dwSize 和 sizeof,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31686283/

相关文章:

c - Visual C 中有全局变量大小限制的解决方法吗?

byte - 交换字节中的每对位

c++ - 从字节流中提取字节

c# - 从 C# 字符串转换为 C++ wchar_t [非托管]

c++ - Windows 服务程序中退出函数的作用

c++ - 使用 axis2c 开发 Web 服务时如何访问轴骨架代码中的服务参数?

objective-c - 使用 UIImageJPEGRepresentaion() 将 UIImage 转换为 NSData 并将其保存到文件会增加文件大小(以字节为单位)

css - 当它是较小 div 的容器但没有其他内容时,如何用背景图像填充 div?

javascript - 将 Javascript 中完成的字节字符串创建复制到 Python 2.7 中

c++ - 弦线用线;在读取文件时