我是C++中的新手,我尝试创建一个对象数组。我使用的代码如с++访问违反对象数组
const int SORT_SIZE = 20;
int _tmain(int argc, _TCHAR* argv[])
{
CSimple * data;
data = new CSimple[SORT_SIZE];
for(int i = 0; i < SORT_SIZE; i++)
{
/*Access violation here*/ *(data + i * (sizeof(CSimple))) = *(new CSimple(rand() % 10000));
}
并在我的循环中我= 5我得到访问冲突。 sizeof(CSimple)是8(只有一个int字段)如果它很重要
对不起,删除我的答案 - 在重新读取您的代码后,我所说的只是删除更好。 – djechlin
取出'*(sizeof(CSimple)' –
@PaulR是对的,编译器负责按指针对象的大小缩放指针算术运算的整数操作数,所以当你这样做的时候, – tmpearce