【发布时间】:2018-03-08 18:24:19
【问题描述】:
我目前有这个代码:
#include "stdafx.h"
#include "AddressInfo.h"
AddressInfo::AddressInfo(int ammoCount, int pointerLevel, DWORD baseAddress, DWORD* offsetArray) {
ammo = ammoCount;
numPointers = pointerLevel;
this->baseAddress = baseAddress;
offsets = (DWORD*)malloc(sizeof(offsetArray));
this->offsets = offsetArray;
};
AddressInfo::~AddressInfo() {
delete[] offsets;
}
void AddressInfo::print() {
std::cout << this->offsets[0]<< std::endl;
}
DWORD x[] = { 0x374, 0x14, 0x0 };
AddressInfo* ammo = new AddressInfo(1000, 3, (DWORD)(0x00509B74), x);
int main()
{
ammo->print();
system("pause");
}
此代码有效,但我想执行以下操作: 我不想预先定义数组并将其传递给构造函数,而是按如下方式传递数组:{0x374,0x14,0x0}
这可能吗/这实用吗
我尝试过类型转换:(DWORD*) {0x374,0x14,0x0}
【问题讨论】:
-
{ x, y, ...}符号仅在分配时有用。我不认为它可以在函数调用中使用。 -
使用
std::vector。 -
如果您使用的是 C,这可能是复合文字。
-
offsets = (DWORD*)malloc(sizeof(offsetArray));结合delete[] offsets;根本无法工作 -
@UnholySheep 分配
this->offsets = offsetArray甚至在它到达之前就破坏了它。
标签: c++ arrays constructor