- 자료구조 02 : 포인터와 동적 메모리 할당 *, &, malloc, free2024년 09월 25일 16시 31분 15초에 업로드 된 글입니다.작성자: UXO Studio
01 포인터
02 동적 메모리 할당
01 포인터
: 메모리 주소를 저장하는 변수
011 *
간접 참조 연산자 (포인터)
- 포인터 변수를 선언할 때 사용
- 특정 자료형의 메모리 주소를 가리킴
ex) ptr이라는 변수(포인터) : int형 데이터가 저장된 메모리 주소를 저장 할 수 있음
int *ptr;
역참조 연산자
- 포인터가 가리키는 주소 값을 참조할 때 사용 (메모리 주소에 저장된 실제 값에 접근 시)
012 &
주소 연산자
- 메모리 주소를 반환하는 연산자
ex) 포인터 사용
변수 *ptr로 ptr에 &a로 반환받은 int형 변수 a의 메모리 주소를 저장.
*ptr로 ptr에 저장된 메모리 주소가 가리키는 변수의 값을 참조
int a = 10; int *ptr = &a; // a의 주소를 ptr에 저장 printf("%d", *ptr); // ptr이 가리키는 주소의 값을 출력, 결과는 10
02 동적 메모리 할당
: 프로그램 실행 중 필요한 메모리 할당, 해제
021 malloc
- 사용자가 요청한 크기만큼의 메모리를 동적으로 할당
- 할당 후 그 메모리의 시작 주소를 void * 형태로 반환
ex) malloc 사용
malloc(10 * sizeof(int))로 int형 자료형 10개가 저장될 수 있는 크기의 메모리를 할당하고, 반환받은 주소를 arr 포인터에 저장
malloc이 void * 형태로 반환한 메모리 주소를 int형 포인터 arr가 저장할 수 있도록 형 변환 필요
(int *)를 사용하여 형 변환 Casting
int *arr; arr = (int *)malloc(10 * sizeof(int)); // int형 10개 크기의 메모리를 할당
022 free
- malloc이나 calloc, realloc 등을 통해 할당한 메모리를 해제
- 메모리 해제를 통해 메모리 누수를 방지
ex) malloc 사용
arr에 저장된 메모리 주소의 값 (arr가 가리키는 메모리)를 해제
free(arr); // arr이 가리키는 메모리를 해제
#C언어 #포인터 #동적메모리할당 #malloc #free #프로그래밍기초 #코딩기초 #프로그래밍공부 #코딩연습 #프로그래밍언어 #초보프로그래머 #C언어기초 #포인터사용법 #메모리관리 #역참조연산자 #주소연산자 #메모리할당 #메모리해제 #메모리누수 #동적메모리관리 #포인터변수
'C C++ > Data Structure' 카테고리의 다른 글
자료구조 00 : 자료구조와 알고리즘, 이름 짓기, typedef, 매크로 함수 (0) 2024.09.25 다음글이 없습니다.이전글이 없습니다.댓글