2013-10-05 4 views
0

구조체에서 크기가 0 인 배열을 사용하는 것은 불법이므로 여기에서 내가하는 일에 대한 대안을 찾으려고합니다. 거의 동일한 작업을 수행 할 수있는 코드는 무엇입니까?제로 크기 구조체에 대한 대안

내가 기본적으로 여기에서하려고하는 것은 4면이있는 애니메이션 된 개체의 구조체를 만드는 것입니다.

struct Sprite 
{ 
    double x; 
    double y; 
    int textureFront[]; 
    int textureBack[]; 
    int textureRight[]; 
    int textureLeft[]; 
}; 

int boxAnimation[7] = {10,5,6,2,76,8,4}; 

Sprite sprite[8] = 
{ 
    {20.5, 11.5, {10}}, 
    {18.5, 4.5, boxAnimation}, 
    {10.0, 4.5, {10}}, 
    {10.0, 12.5, {10}}, 
    {3.5, 6.5, {10}}, 
    {3.5, 20.5, {10}}, 
    {3.5, 14.5, {10}}, 
    {14.5, 20.5, {10}}, 
}; 

예를 들어 textureFront 만 지정할 수 있습니다.

+3

그래서 원하는 것은 포인터입니까? – kfsone

+5

특정 크기를 가지고 있다면'std :: array'를, 그렇지 않으면'std :: vector'를 사용하십시오. – chris

+2

@kfsone, 나는 당신에 대해 잘 모르지만, 만약 내가 그 클래스의 사용자라면, 그것들 각각에 대해 수동으로 메모리를 관리 할 필요가 없다는 것에 감사 할 것이다. – chris

답변

0

전달할 인수를 취하는 생성자를 작성한 다음 나머지 세 개의 나머지 필드 인 null 또는 원하는 다른 논리를 내부적으로 작성하십시오.