sizeof没有返回LPVOID变量的正确大小
sizeof is not returning correct size of LPVOID variable
sizeof没有返回tData所指向的Data的大小My compiler visual studio c++ 2012
bool FixReloc(LPVOID pModule,LPVOID tData,LPVOID pAddressNew,DWORD pAdrressOld,WORD fImageX64)
{
DWORD iDelta = (DWORD)pAddressNew - pAdrressOld;
long iSize = sizeof (tData);
iSize为4,但当我创建tData时,我就这样做了
byte* tData = new byte[2057];
relocRaw = reinterpret_cast<byte*>(pointerToRawData + (virtualAddressBaseReloc - virtualAddress));
size应为2057有解决方案吗?
机器上的指针是4字节宽。如果想要获得指针所指向对象的大小,必须对其解引用:
long iSize = sizeof(tData); // Gets size of pointer = 4
iSize = sizeof(*tData); // Gets size of pointed object, which is sizeof(void), which is implementation defined
不幸的是,解引用void *
对您来说不是很有用,因为它的实现已定义(或未定义),即使已定义,也无法帮助您获得字节数组的大小。
相关文章:
- 你能重载对象变量名本身返回的内容吗
- 如何在 c++ 中让布尔变量返回为 0 或 1 而不是真或假?
- 从私有成员变量的成员方法返回unique_ptr
- 为什么我不能在返回 const 的布尔函数中为类成员变量赋值?C++
- C++ 根据给定的类型名从变量返回数据
- 为什么 std::isnan() 对于具有 NAN 值的双变量返回 false
- C++ 在静态函数中使用非静态变量返回类实例
- 具有变量返回类型的函数
- 带有 QVariant 和模板的变量返回类型
- getenv() 在不同的程序中为同一环境变量返回不同的值
- C 多重继承,虚拟方法覆盖问题和协变量返回类型
- 变量返回类型
- C++函数向字符串变量返回int
- 从临时变量返回的引用是否有效
- 有没有一种方法可以将C++数据类型作为变量返回
- 类函数的模板变量返回类型
- C++函数,使用'auto'变量返回类型
- 如何将引用变量返回到函数中
- 变量返回类型上转换覆盖c++
- 数组变量返回意外值