我有一些有效的代码:

class dummie_type
{
    public:
    int a;

    void do_stuff()
    {
        // blah
    }
};

class dummie_type dummie[10];

void main()
{
    subroutine();
}

void subroutine()
{
    dummie[3].a = 27; // etc...
    dummie[5].do_stuff();
}

请注意,类的数组是全局的,我需要保持它不变(这是一个很长的故事)。
我需要更改此代码,以使类数组的长度可变。我知道这将涉及到创建一个全局指针,然后将其设置为指向在main中进行malloc或new赋值的内存块,并且我知道必须更改“”。字符“->”,但除此之外,我一直无法生成我的编译器可以接受的内容。对于声明指向类数组的全局指针,我尤其不确定。

编辑:对不起,我应该早先说过,数组大小将在main()开始附近进行一次计算,并且此后将保持不变。

最佳答案



基本上就是全部。您将dummie声明为dummie_type * dummie;,然后在main中执行dummie = new dummie_type[size];。不,您不需要将.更改为->

10-04 12:53