如何创建一个在运行时定义大小的数组?
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
我写了这段代码
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