[자료구조 & 알고리즘] C언어의 포인터(pointer), 구조체(structure), 힙(heap), 스택(stack)

2025. 5. 5. 14:41·[자료구조 & 알고리즘]
728x90

포인터

개념

  • 자료의 메모리 주소를 담는 변수

생성방법

  • 자료형* 포인터변수;
  • int* ptr;
  • float* ptr
  • int a; int* ptr = &a;

연산자, 배열과의 관계성

  • 포인터에 ‘++’ 연산자 사용 시 해당 자료형의 바이트 수 만큼 주소값이 증가한다.
  • 배열을 선언 후 배열의 주소를 포인터 변수에 저장하면 포인터 변수는 배열의 첫번째 값의 주소를 갖는다.
  • 위 두가지를 활용하면 ‘++’, ‘—’ 연산자를 활용해 배열을 탐색할 수 있다.

구조체

개념

  • 사용자가 지정한 데이터 타입을 조합해서 만드는 사용자 정의 데이터 형식

사용방법 (2가지)

  • struct MyPoint { int a; int b; };

선언방법

  • struct Mypoint Point = {30,40}; struct Mypoint* ptr = Point;

데이터 접근방법

  • Point.a
  • Point.b
  • ptr→a (포인터를 사용하여 값에 접근 시 → 를 사용해야함)
  • ptr→b (포인터를 사용하여 값에 접근 시 → 를 사용해야함)

typedef 사용방법

  • typedef struct Mypoint { int a; int b; } Type;

typedef 선언방법

  • Type Point = {30,40};
  • typedef 사용 시 ‘struct MyPoint’를 선언 할때마다 사용하지 않고 ‘Type’이라고 지정한 별칭을 사용해서 선언이 가능하다

메모리 레이아웃

형태

스택

-자동메모리 영역
 
 
-자유메모리 영역
힙
데이터
텍스트

설명

  • 텍스트 - 실행될 코드 저장공간
  • 데이터 - 전역 변수나 정적 변수 저장
  • 스택 - 스택 ADT → 선입후출, 후입선출 개념, 코드 블록 안 지역변수 설정 시 자동으로 메모리에 올라갔다가 자동으로 메모리 해제됨
  • 힙 - 사용자가 지정하여 메모리를 직접 할당하여 사용할 수 있는 공간, 스택처럼 자동으로 메모리 할당 해제가 되지 않기 때문에 사용자가 직접 메모리 해제 명령을 내려야함. 메모리에 남아있는 쓸모없는 공간을 누수(leap)이라고 부름
728x90

'[자료구조 & 알고리즘]' 카테고리의 다른 글

[자료구조 & 알고리즘] C언어 더블 포인터 뜯어보기  (0) 2025.05.08
리스트 ADT / SLL / DLL / CDLL  (0) 2025.05.05
'[자료구조 & 알고리즘]' 카테고리의 다른 글
  • [자료구조 & 알고리즘] C언어 더블 포인터 뜯어보기
  • 리스트 ADT / SLL / DLL / CDLL
뽕규의 스케치북
뽕규의 스케치북
공부 열심히 해볼게요
  • 뽕규의 스케치북
    뽕규의 스케치북
    뽕규의 스케치북
  • 전체
    오늘
    어제
  • 링크

    • 파이썬 공식 문서
    • GitHub
    • 분류 전체보기 (37)
      • [파이썬] (17)
      • [데이터 분석] (3)
      • [Git&GitHub] (5)
      • [자료구조 & 알고리즘] (3)
      • [안드로이드 앱] (0)
      • [네트워크] (0)
      • [머신러닝 & 딥러닝] (0)
      • [SQL] (1)
      • [컴퓨터 구조 & 운영체제] (0)
      • [개발자 수학] (0)
      • [노션] (6)
      • [기타] (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 공지사항

  • 인기 글

  • 태그

    DB
    소스트리
    개념
    기초
    *
    파이썬
    함수
    push
    수식
    깃
    GIT
    노션
    pull
    python
    sourcetree
    깃허브
    github
    발전
    공부
    TODO
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
뽕규의 스케치북
[자료구조 & 알고리즘] C언어의 포인터(pointer), 구조체(structure), 힙(heap), 스택(stack)
상단으로

티스토리툴바