크기
포인터의 데이터 형식은 포인터 변수의 크기를 의미하는 것이 아닙니다.
포인터 변수가 가리키는 데이터의 형식을 뜻합니다.
예를 들어
int *pointer
위의 코드에서 int는 해당 포인터 변수가 가리키는 변수의 타입.
포인터 변수의 크기
64bit 프로그램 : 8byte
32bit 프로그램 : 4byte
주의할 것
1. 배열과 포인터
배열과 포인터는 비슷하다고 생각할 수 있습니다.
하지만 위에서 보았듯이 포인터는 주소를 저장하기 위한 용도이기 때문에 크기가 정해져있지만
배열은 데이터 타입, 정적, 동적에 따라 크기를 다양하게 설정할 수 있습니다.
2. 변수와 배열
포인터 변수를 선언하고 변수의 주소를 받기 위해 보통은 아래와 같이 선언하지만
int* pointer = &variable;
배열을 받을 때는 배열의 첫 번째의 주소를 받기 때문에 '&'를 쓰지 않는다.
int* pointer = array;
3. 유효한 메모리
포인터를 역참조하기 전에 포인터가 유효한 메모리를 가리키는지 확인해야 합니다.
유효하지 않은 메모리를 가리키는 포인터를 역참조하려고 하면 세그멘테이션 실패나 런타임 오류가 발생할 수 있습니다.
4. 포인터 연산
할당된 메모리의 범위를 벗어나는 포인터 연산인지 확인해야 합니다.
'C++' 카테고리의 다른 글
Visual Studio의 메모리 할당 (0) | 2024.12.31 |
---|---|
정적 변수 & 전역 변수 차이 (0) | 2024.12.30 |
'상수 포인터'와 '포인터 상수'의 차이 (0) | 2024.12.27 |
간단한 코드를 작성해 Class 개념 익히기 (0) | 2024.12.24 |
C++ 튜토리얼 (0) | 2024.12.23 |