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

How can I make an array with size defined at runtime?

我写了这段代码

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];

} 

我该怎么做才能制作那种结构数组?

这是 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