动态数组和void指针

Pra*_*xit 1 c++ void new-operator

我有一个非常特殊的问题.我想初始化一个由void指针指向的数组,使用new分配内存,如下所示.

const int ARRAY_SIZE = 10;
void InitArray()
{
    int *ptrInt = new int[ARRAY_SIZE];
    for(int i=0; i<ARRAY_SIZE;i++)
    {
         ptrInt[i] = 1; //OK
    }

    void *ptrVoid = new int[ARRAY_SIZE];
    for(int i=0; i<ARRAY_SIZE;i++)
    {
         *(int*)ptrVoid[i] = 1; //Culprit  : I get a compiler error here 
                                //(error C2036: 'void *' : unknown size)
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我想初始化这个数组的元素,ptrVoid用1表示.我该怎么做呢?使用此代码,我得到编译器错误,如代码中所示(我正在使用VS 2010).有什么建议?

Car*_*rum 9

您有一个操作顺序问题(和一个额外的*).在第二个循环中尝试这个:

((int *)ptrVoid)[i] = 1;
Run Code Online (Sandbox Code Playgroud)