[C/C++] 한 편으로 요약하는 포인터

한편으로 요약하는 포인터 C의 포인터는 사실 단순히 ‘메모리상의 주소를 저장하는 변수’의 개념인데, 실제로는 상당히 어렵다고 느끼는 경우가 많다. 왜냐면 메모리 주소를 사용하는 방식은 단순히 ‘간접적’으로 변수 값을 참조하는 것이라 “과연 이걸 어디다, 왜 쓴단 말인가”라고 생각해버리기 쉽기 때문에 실제로 어떻게 써야 하는지에 대한 감을 잡기 힘들기 때문이다. 이 글에서는 몇 개의 예제를 살펴보고 이를 통해 포인터의 기초적인 내용을 공부해 보도록 하겠다.

[C] 문자열 배열과 이중 포인터

이중 포인터를 이용한 문자열 배열의 동적 할당 역시 실제로 해보지 않으면 이해가 안가는게 코딩인가보다. C에서 문자열은 배열로 표현된다. 여러 개의 문자열을 배열에 담고 싶다면 이차원 배열을 쓰면되는데, 이 경우에는 배열 요소의 크기가 모두 같으므로 메모리가 낭비될 수 있다. 보통은 다음과 같이 문자열(char 형 배열)의 주소를 가리키는 포인터 배열을 사용한다. #include int main(void) { char *arrs[] = {“abcdefg”,”afeasge”,”asesgfggeaweasfegasegfs”,”a”,”tiger”}; int i; for(i=0;i 위 코드의 arrs[]는 문자열포인터(char 형)를 담는 배열이다. 이 배열의 각 요소에는 초기화할 때 사용한 배열의 각 문자열의 시작 번지를 저장하게