2011. 8. 10. 12:11

리눅스 프로그래밍(TCP/IP 소켓 프로그래밍)을 하는 도중에, 빈번한 세그먼테이션 오류로 고생하던중..ㅠㅠ
원인을 찾았다...

원인은 대부분.;; 나의 오타..;;
음... 그러니까 - visual스튜디오에서는, c프로그래밍중 대부분의 오류를 잡아주지만...
gcc 상에서는.. 그냥 컴파일 - > 실행 ..ㅠㅠ 환경이기 때문에,(컴파일에서 오류를 못잡아주고.. 실행시.. dump dump..)
오타가 나는 경우.. 알아채기가 힘들다...ㅠㅠ

음... 이번 경우에서는
긴 프로그래밍에서

printf("Result : %s \n", sum);  .... 이것 때문..;;
printf("Result: %d\n", sum); .. 이렇게 했어야 하는데.....


많은 지식인 님들의 조언에 의하면,
* 세그먼 테이션 오류는
  - 포인터를 잘 못 사용할 시 발생
  - 포인터, 또는 배열의 메모리를 잘 못 사용할 경우
  ( 포인터로 지정해 놓고, 초기화도, 메모리 할당도 안해준 경우)
등등의 경우로 볼 수 있었다. - -
물론,
리눅스가 아닌 솔라리스 서버를 사용할 경우에,, 함수가 호환이 안되서(???) 메모리 덤프가 일어나는 경우도 있었음 -


여하튼.. 중요한건... 오타의 최소화!
Posted by Triany