如何创建一个在运行时定义大小的数组?

时间:2015-01-02 12:48:27

标签: c++

我已经写了这段代码

struct Personalidadbeta{
    int A, B, C, D, E, F, G, H, I, L, M, N, O, Q1, Q2, Q3, Q4,Extraversion;
};

const int Cantidad = personalidadalfa.Extraversion * 24;

完成将该变量转换为常量,但是当我想创建一个带有该变量“Cantidad”的结构数组时,它会产生并且错误会告诉变量不是常量而必须运行它;

void crearPersonalidadBeta(){


    Personalidadbeta personalidadbeta[Cantidad];

} 

如何制作那种结构数组?

1 个答案:

答案 0 :(得分:3)

这是X / Y的情况,你想做X,最初所以你试过Y,因为它不起作用,你想知道如何修复Y.

对于您的初始问题:

vector<Personalidadbeta> personalidadbeta;
personalidadbeta.resize(Cantidad);

你可以像使用数组一样使用personalidadbeta(即你可以personalidadbeta[index]等等。

阅读http://www.cplusplus.com/reference/vector/vector/

这样做的众多优点之一是您不必手动释放内存。

这是另一个SO问题,类似于:

How to define member array size at runtime