C/C++
글 수 37
2013.10.25 11:40:42 (*.52.177.249)
22037
C언어에서 포인터는 매우 필요한 요소이지만, 또한, 이해하기 어려워 하는 요소이기도 합니다.
제대로 이해하지 않고 프로그램을 작성하면 매우 이상한 버그를 경험하게 되지요.
그래서 사용을 꺼리는 분이 있는데, 물론 포인터를 사용하지 않고 다른 방법을 돌린다면
불안한 마음을 줄일 수 있겠습니다.
그러나 포인터를 사용하지 않겠다고 배열로 대치한다는 것은 좋은 생각이 아니라고 생각합니다.
물론, 개인적인 생각이고 일반적으로 배열이 편합니다. 버퍼를 잡더라도,
char rx_buff[MAX_BUFF_SIZE+1];
로 정의하지,
char *p_rx_buff;
p_rx_buff = malloc(MAX_BUFF_SIZE+1);
을 하는 경우는 적거든요.
이렇게 편의상으로 배열을 사용한다면 모를까, 안전하기 때문에 배열을 사용한다는 것은
올바르다고 할 수 없겠습니다. 이유는 아래의 코드로 간단히 알 수 있습니다.
char str[5];
sprintf( str, "여기는 FALINUX 포럼입니다.\n");
이렇게 간단한 코드도 황당한 결과를 만들 수 있죠.
어디 숨어 있어서 잘 보이지 않는 곳에 이와 비슷한 코드가 있다면
그리고 발견하지 못 한다면 매우 괴로운 버그입니다.
버그 없는 코드를 위해!!