2015-01-02 2 views
-1

나는 그것은 상수에 해당 변수를 변환하기 위해 이루어졌다런타임에 정의 된 크기의 배열을 만들려면 어떻게해야합니까?

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; 

이 코드를 writen 왔지만 그 변수 "Cantidad"그것을하게하고 오류 마녀 변수 있음을 알려줍니다와 구조체의 배열을 만들 때 상수가 아니며 달릴 수 있어야합니다.

void crearPersonalidadBeta(){ 


    Personalidadbeta personalidadbeta[Cantidad]; 

} 

그런 종류의 구조체 배열을 만들려면 어떻게해야합니까?

+0

대신 '벡터'를 사용할 수 있습니까? – doctorlove

+8

배열의 크기는 컴파일 타임 **에 ** 일정한 값으로 지정되어야합니다. 그렇지 않으면 동적 배열 ('new'와 함께)을 사용하거나 그냥'vector'를 사용해야합니다. 다른 이유들에 대해서도 추천 할 것입니다. – CoryKramer

답변

3

이것은 X/Y 상황입니다. 처음에는 X를하고 싶었으므로 Y를 시도 했으므로 작동하지 않았으므로 Y를 수정하는 방법을 알고 싶습니다. 초기 문제에 대한

:

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

당신이 알 수 사용 personalidadbeta 배열과 같은 (즉, 당신이 personalidadbeta[index] 등 수 ..

읽기 그 일의 많은 장점의 http://www.cplusplus.com/reference/vector/vector/

하나 이 방법은 메모리를 수동으로 해제 할 필요가 없습니다.

다음은 이와 비슷한 또 다른 질문입니다.

How to define member array size at runtime

관련 문제