해결할 수없는 매우 이상한 버그가 있습니다. 내가 엑스 코드 (이 문제 있는지 확실하지 않습니다)에 그것을 실행하고clock() 함수에서 EXC_BAD_ACCESS 오류가 발생했습니다.
clock_t start, diff;
start = clock();
const int N = 1000;
int a[N][N];
for(int i=0 ; i<N ; ++i){
for(int j=0 ; j<N ; ++j)
a[j][i] = 0;
}
diff = clock()-start;
int msec = (int) diff*1000/CLOCKS_PER_SEC;
printf("time: %d milliseconds", msec);
코드의 간단한 조각을 시간이 간단한 프로그램을 구축하고 그것을 잘 실행하지만 2000 N을 변경할 때 나는 EXC_BAD_ACCESS
(코드를 얻을 2, address = 0xfff5ecbd438)을 start = clock()
행에 입력하십시오.
배열 크기를 변경하면 clock()
명령에 어떤 영향을 주는지 잘 모르므로 여기를 놓치고 있습니다.
아이디어가 있으십니까?
IOS 또는 Mac에 있나요? 배열 'a'가 4 * 1000 * 1000 = ~ 4MB의 스택을 차지한다는 것을 알고 있습니까? – JBRWilkinson