|
타즈 님이 쓰신 글 :
:
: 학교에서 내준 과제를 하고 있는데 제가 아는 바로는 틀린 것도 없고 컴파일도 되는데
: 링크하는데에서 다운을 먹습니다. 고수님들 부탁드려요
:
: #include<stdio.h>
:
: void main(void)
: {
: int i,j;
: int germ[30][80];
: int seed[8][3][3] = {{{0,0,1},{1,1,1},{0,1,0}},
: {{0,1,0},{1,1,0},{0,1,1}},
: {{1,1,0},{0,1,1},{1,1,0}},
: {{1,0,0},{1,1,0},{1,0,1}},
: {{1,1,1},{1,1,0},{1,1,1}},
: {{1,1,1},{0,1,0},{1,0,1}},
: {{0,1,0},{1,1,1},{0,1,0}},
: {{1,0,1},{1,1,0},{0,1,0}}
: };
:
: for(i=0;i<30;i++)
: for(j=0;j<80;j++)
: germ[i][j]=0;
:
: for(i=0;i<3;i++)
: for(j=0;j<3;j++)
: germ[14+i][39+j] = seed[1][i][j];
:
: for(i=0;i<30;i++)
: {
: for(j=0;j<80;j++)
: printf("%d",germ[i][j]);
:
: printf("\n");
: }
: }
:
: 프로그램의 일부만 시험해볼려고 함수부분을 따로 만든 건데요 컴파일시 문제 없는데
: 링크시 다운을 먹습니다. 부탁드려요~~^^
다만, 실행 결과는 0만 엄청 많이 출력되네요. 로직에는 문제가 있군요. ^^;
님의 컴에서 링크가 안된다면 컴파일러를 최신버전으로 사용해보시기 바랍니다.
아마 님의 컴파일러는 16비트 컴파일러인 듯합니다. 32비트 컴파일러를 쓰세요.
그리고 위의 코드처럼 자동 변수(스택에 생성되는 변수)를 크게 잡는 것은 좋지 않습니다.
일단 링커 옵션에서 스택 크기를 늘려보시고요,
(C++Builder에서는 'PE File Options'라는 항목에서 조절할 수 있습니다.)
안되면 static 키워드로 정적 변수로 선언해보십시오.
그래도 안된다면 malloc이나 new를 써서 힙(heap)에 동적 할당을 하는 방법을 쓰셔야 합니다.
|