9차원 배열.
글쓴이: suncrunch / 작성시간: 월, 2008/09/08 - 4:56오후
안녕하세요.
9차원 배열을 사용하고 싶은데요.
0xc00000fd - stack overflow error가 발생해서요.
local memory에 저장이 안돼는 것 같아서
new를 통해 할당하려고 하는데 error가 발생해서 질문 드립니다.
9차원 배열 선언이 가능한가요?
class A {
int a,b;
}
A m_A[2][2][2][2][2][2][2][2][2];
이런식으로가 가능한건지 궁금합니다.
아니면
A *********m_A=new A[2][2][2][2][2][2][2][2][2];
이렇게 선언이 가능한지도요.
혹시 경험 있으신 분 답변 부탁드립니다.
감사합니다.
Forums:
무엇을 하시는데
무엇을 하시는데 9차원이 되는 배열이 필요하신가요?
다른 해결 방법을 찾아보시라고 권해드리고 싶네요..
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
으..음...
A m_A[2][2][2][2][2][2][2][2][2];
이건 가능하고요
2번째껀
저렇게 하시면 안돼고요..
할당하고 다시 또 안에 할당해야해요..
점점 세분화되서 쪼개지는 것이기 때문에..
동적할당으로는 저렇게 못할껄요...
일단 안돼서...
누구 이걸 멋지게 하는 방법 아시는 분 안계세요 ?
무식하게 아래와 같이 하면 안될 껀 없습니다만....
template이나... void *를 써서 좀더 generic하게 할 수 있는 방법이 없을까요 ?
아래는 그냥 날로 코딩한거네요.
9차원까지는 귀찮아서 안해봤지만 5차가 SIZE 10로 했는데 메모리 엄청나게 잡아 먹는군요.
10에 5승이니까 헐-_- 3 word X 10 ^ 5승만큼 메모리를 잡아먹네요.
장난 아닙니다.
STL Vector를 이용해 봤습니다.
9단계에는 template인자 명의 길이 제한에 훌쩍 넘어 버려 컴파일 자체가 안됩니다.
4단계는 잘되는 군요.
먼가 멋진게 없을까요 ?
9차원짜리 배열을
9차원짜리 배열을 쓰는 거 그자체로 이미 멋지지 않은것 같은데요-_-;
이미 처음 단계부터 9차원 배열을 생각하는것 자체가
무의미하기는 하지만..
재미있는 내용이네요 ㅋㅋㅋ
---------------------------------------------
svn + trac + my project --> success ???
---------------------------------------------
---------------------------------------------
git init
git add .
git commit -am "project init"
---------------------------------------------
template struct
사용법
단점은 항상 SIZE 가 일정한 중첩 array 밖에 만들지 못 합니다.
만약 A[10][2][10][5].. 이런게 선언하고 싶으시면 가능할지.. ( 안에 size 나 dimention 을 넣어두었지만, 임의의 저런 모양의 array 는 될지 저조차도 의문이군요. )
Neogeo - Future is Now.
Neogeo - Future is Now.
대단합니다.
이렇게 표현하고 싶어서 고민 중이었는데....
아마 물리학 그 언저리에서 실제로 쓰이는 것 같아(?)
고민했었는데...
제가 몰랐던 핵심이 바로
이렇게 끝을 알려줘야 재귀적인 template의 끝이 되는군요.
무자게 배워갑니다.
질문하신 분보다 제가 더 감사하네요.
아.......
template 에는 더
template 에는 더 재미있는 세계가 많답니다.
C++ template meta programming 과 modern c++ design 을 꼭 한번 보시기 바랍니다.
Neogeo - Future is Now.
Neogeo - Future is Now.
그냥 int *array_2_9 =
그냥
이렇게 사용하면 안될까요?
댓글 달기