2014-04-20 4 views
0

함수에서 다음 문자 배열을 만들었습니다.세그먼트 오류 가상 머신에서 코어가 덤프 됨

char key1[500]=""; 

I 인덱스를 통해 반복하고 "I"인덱스 initialIndex (글로벌 인덱스)를 통해 글로벌 변수 inputFileArray의 함수 값을 복사한다.

key1[i++]= inputFileArray[initialIndex++]; 

이 문은 실행시 오류 (코어 덤프 됨)가 발생합니다.

현재까지는 Visual Studio C++ 편집기를 사용하여 컴파일 한 다른 컴퓨터에서 정상적으로 작동했습니다. 13. 우분투 13.10 가상 머신에서 실행하려고하면이 오류가 발생합니다. 답을 고맙게 생각합니다.

+2

'i'의 값이 '500'보다 낮습니까? –

+1

본질적으로 관련 코드를 모두 생략 한 것으로 보입니다. 이는 본질적으로 대답을 불가능하게 만듭니다. –

+0

코드가 다른 시스템에서 segfault하지 않았다고해서 인덱스가 올바른 것은 아닙니다. 배열 외부에서 프로그램에 할당 된 메모리를 가질 수 있으므로 가장자리에서 색인을 생성하더라도 말하자면 segfault는 발생하지 않습니다. 그런 다음 다른 컴퓨터에서 경계 밖으로 나가 자마자 운영 체제가 프로그램에 할당 한 메모리 외부에있을 것이므로 바지를 segfault합니다. I.E. 더 많은 코드를 제공하십시오. – evading

답변

1

이 문은 실행시 오류 (코어 덤프 됨)가 발생합니다.

디버거 (일반적으로 Linux의 GDB)를 사용하는 방법을 배우십시오. here을 시작하고 싶을 수 있습니다.

디버거에서 프로그램을 실행하고 i < 500 및 그
initialIndex < sizeof(inputFileArray)을 확인하십시오. 다음에 하나 개의 시스템 충돌에 (은 잘 작동하는 나타납니다) 잘 작동 코드 :

다른 컴퓨터

예에 괜찮 았는데, 버그가 그렇게 자주합니다.

관련 문제