코딩 팁

[오류] 세그멘테이션 오류 (core dumped) 해결 방법

핑크사우루스 2023. 6. 5. 20:18

오류 발생

구름ide에서 병합정렬 알고리즘을 구현하다가 실행하려고 보니 다음과 같은 오류가 나타났다.

 

입력값을 모두 받고난 뒤 발생한 오류

다른 플랫폼에서 코드를 실행했더니 정상적으로 작동하는 것을 확인했다.

코드에서 작동하지 않는 부분이 있는지 확인하기 위해 cout을 난사했더니 다음과 같은 부분을 발견했다.


해결

22번 줄에서 정수형 자료 i 가 제대로 선언되지 않은 것이 문제였다.

 

다음과 같이 수정하니까 코드가 제대로 작동하기 시작했다.


어라

애초에 저렇게 변수를 선언하면 안되나? 싶어서 간단한 코드를 만들어 돌려봤더니...

#include <iostream>

using namespace std;

int main(){
	int i, j = 14;
	cout << i << " " << j;	// 실행결과 i : 0, j : 14
	
	cout << endl;
	return 0;
}

헉, i의 값이 14가 아니였다...

다른 플랫폼에서 돌려봐도 i의 값에 0이나 쓰레기값이 들어있었다.

왜 되는 줄 알고 있었지?

 

아무튼 위와 같은 오류가 났는데 변수 선언을 나처럼 했다면 바꿔서 코드를 돌려보도록 하자.

그리고 다시는 같은 실수를 반복하지 말자