Linux에서 gcc를 컴파일러로 사용하면 악명 높은 코어 덤프 오류가 발생합니다. 글로벌 선언 :세그먼트 오류 : 코어가 큰 크기의 배열을 초기화하는 동안 덤프되었습니다.
오류가 발생#define MAX_N 10000
double cost[MAX_N][MAX_N]={0};
int stack[MAX_N];
int visited[MAX_N];
(나는이 라인을 주석 처리하면 도망 간다) :
for(q=0;q<5;++q)
{
visited[q]=0;
stack[q]=0;
}
이 코드 조각이 호출되는 함수 내부에있다 10,000의 수를 타임스. 그래서 함수가 호출 될 때마다,이 초기화가 완료되어야합니다! 내가 memset을 사용하여 시도했지만 너무 도움이되지 않습니다!
오류가 발생하는 곳은 아닙니다 .. 행을 주석 처리하면 다른 코드가 손상되는 원인이 변경 될 수 있습니다. –
10000은 큰 크기가 아닙니다. 분명히 그 오류는 다른 곳에서 발생합니다. 이러한 종류의 오류가 발생하면 원점에서 멀리 떨어지는 오류가 발생하는 것이 정상입니다. – ivg
그러면 정확히 어떻게 오류가 발생했는지 추적 할 수 있습니까? –