포인터

· Major/C&C++
1. 동적 메모리 할당 - 일반적인 배열은 크기가 고정되어있다. - 이러한 고정된 크기 때문에 배열이 남을 수도, 부족할 수도 있다. - 일반적인 배열의 단점을 보완한 것이 '동적 메모리 할당' 이다. 1) 의미 : 메모리를 운영체제로부터 할당받아서 사용하고, 사용이 끝나면 반납하는 기능 - 동적 메모리가 할당되는 공간을 히프(heap)라고 한다. * 히프는 운영체제가 사용되지 않는 메모리 공간을 모아놓은 곳이다. 2) 선언 방법 int *p; p = (int *)malloc(sizeof(int)); //동적 메모리 할당 *p = 1000; //동적 메모리 사용 free(p); //동적 메모리 반납 - malloc() 함수는 size 바이트 만큼 메모리 블록을 할당한다. 따라서 sizeof(int) = ..
· Major/C&C++
- 외부 변수의 값을 변경할 때 포인터를 매개변수로 사용하면 편리하다 - 그 예로 외부변수 2개의 값을 서로 바꾸는 swap() 함수를 구현하는 방법이 있다. void swap(int *px *py) { int tmp; tmp = *px; *px = *py; *py = tmp; } int main(){ int x = 3; int y = 6; printf("swap 전 : %d, %d" x, y); swap(&x, &y); //변수의 주소를 집어넣는다. printf("swap 후 : %d, %d" x, y); return 0; }
1. 연결 리스트 1) 정의 : 자료가 순서를 가지고 나열된 자료구조를 이야기 한다. 2) 리스트의 표현 ⓐ 배열 이용 - 이 방식은 리스트의 각 원소마다 배열의 원소에 대응시킨다. - A[k]를 읽거나 교체하는 연산은 상수시간이 걸리지만, 삽입과 삭제 연산은 순차매핑을 유지하기 위해 원소의 이동을 필요로 하므로 많은 시간이 소요된다. * 순차 매핑 : 배열이 메모리의 연속적인 공간을 차지함 ⓑ 연결 리스트 이용 - 연결 리스트란 화살표로 표시되는 링크를 가진 노드의 순서 리스트 이다. - 첫번째 노드를 가르키는 포인터의 이름이 연결 리스트의 이름이다. * 연결리스트의 노드들은 메모리에 순차적으로 놓여있지 않을 수 있다. 🟡 포인터를 이용하여 연결 리스트 표현하기 - 하나의 노드는 데이터를 갖고있는 데이..
BeNI
'포인터' 태그의 글 목록