将ULONGLONG分配给16字节数组的结果是什么
What is the result of assigning a ULONGLONG to a 16 byte array?
我是一名Java开发人员,对指针知之甚少。我有以下C++代码(别人写的),我正在努力理解:
ULONGLONG passedValue;
BYTE myArr[16];
memset(myArr, 0x00, sizeof myArr);
*((ULONGLONG *) myArr) = passedValue;
虽然我知道memset
方法调用用0填充myArr
字节数组(大小为16),但我不确定最后一行的作用。
根据MSDN,ULONGLONG是8字节。。。而myArr是16个字节。执行完最后一条语句后,myArr
中会有什么内容?
此术语(ULONGLONG *) myArr
将myArr转换为指向ULONGLONG类型的指针。
那么,*((ULONGLONG *) myArr)
是指针指向的位置的值。
而且,
*((ULONGLONG *) myArr) = passedValue;
将CCD_ 6分配给CCD_。
passedValue 00 00 00 00 00 00 00 00
^^^^^^^^^^^
8 bytes
相关文章:
- C++ 检查结果数组中有多少次数字
- 数组上的相同逻辑会产生不同的结果
- 指针数组中的意外结果
- 使用指针访问数组元素时出现意外结果
- C++数组和指针的大小的结果
- 如何从2D数组为QHeightMapSurfaceDataProxy创建高度图以显示2D傅立叶变换结果
- 如何使用 c++ 将股票代码的结果添加到 poloniex 中的数组中?
- 使用动态分配的数组进行矩阵乘法;结果不正确
- 删除动态数组会弄乱我的结果
- 使用 sizeof 计算数组中的元素数时的结果不同
- 在 Qt 中解析嵌套的 JSON 时出现意外结果(数组不存在)
- 插入指针数组会删除上一个结果
- 二维数组的输出结果
- 为什么我不能将 op 结果乘以常量特征张量数组
- 我写了这个简单的代码,应该计算一系列数组元素的最高数量,但结果很奇怪
- 使用增量/减少操作员在C 中显示数组的奇怪结果
- *char数组到字符串(两次运行代码和两个不同的结果)
- 尝试将二进制数组转换为十六进制C++然后打印结果
- c++中出现意外的数组结果
- 在 OpenMP 中加入数组结果