|
안녕하세요 제라툴입니다.
오래간만에 글을 올리네영.^^
이제 설날이 얼마안남았내영.. 뭐두 새해 복많이 받으세용..
struct AAA
{
int aaa;
int bbb;
double* ccc[];
double* ddd[];
};
위의 구조체를 그대로 컴파일 하게 되면 분명에러가 발생할것입니다.^^
우선 구조체를 보면..
double* ccc[]; , double* ddd[]; 같은 동적할당을 요하는
부분이 있습니다.
하지만 이러한 선언이 성립하기 위해서는 변수선언시 이에 할당된 메모리를 잡도록
이에 할당되는 값들을 넣어주어야 한다.
그렇다면 어떻게해야 될까영.. 저두 솔직히 이런 경우는 첨이라 잘모르겠습니다.
에거거...
그냥 제가 아는 지식을 몇자 적어 봅니다.
우선 위의 것을.. 좀 에러가 나지 않도록 고치면..
struct AAA
{
int aaa;
int bbb;
double** ccc;
double** ddd;
};
이런식으로 2중포인터를 사용해서 고칠수 있습니다.
그런다음..
메모리할당이 필요한경우.
new 연산자를 통해.. 메모리를 할당해서..
사용하는 방법이 있을거 같습니다..
예를 들면..
struct AAA abc;
aaa.ccc = new double*[10];
for(int i = 0 ; i < 10 ; i++)
aaa.ccc[i] = new double[10];
이런식으로 하면 [10][10]의 배열형태로 할당이 되겠죠..
그리고 메모리는 사용후 모두삭제 하시면 될거 같내영.
또 다른 방법을생각해보면..
Linked List를 사용하는 방법이 있을거 같습니다.
struct double_ccc
{
double* ccc;
struct double_ccc* next;
}
이런식의 구조체를 만드신후..
이구조체를 위의 구조체에 선언하여..(물론 이구조체 사용시에는 new를 사용하여 메모리 할당을해야 합니다.)
Linked List 형식으로 사용하는 방법두 있을거 같습니다..
뭐 직접해본건 아니지만 제가 아는 지식을 몇자 적어 봅니다..^^
조금이라도 도움이되셨다면 좋겠군여..
---- 아름다운 청년 제라툴 이었습니다. -------
|