Engineering Note

[C] 16-1 동적 할당 함수 (배열처럼 사용하기) 본문

Programming Language/C programming

[C] 16-1 동적 할당 함수 (배열처럼 사용하기)

Software Engineer Kim 2021. 2. 12. 22:19

동적 할당 영역을 배열처럼 쓰기

  • 형태가 같은 변수가 많이 필요할 때 하나씩 동적 할당하는 것은 비효율적입니다.
  • 할당한 저장 공간의 수만큼 포인터가 필요하기 때문입니다.
  • 따라서 많은 저장 공간을 한꺼번에 동적 할당하여 배열처럼 사용합니다.
  • 이때 할당한 저장공간의 시작 위치만 포인터에 저장하면 포인터를 배열처럼 쓸 수 있습니다.
  • 배열처럼 사용할 전체 저장 공간을 동적 할당하여 int형을 가리키는 포인터에 그 주소를 저장하면 포인터의 주소값을 int형의 크기만큼 증가시켜 전체 저장 공간을 배열처럼 사용할 수 있습니다.

주소 연산

  • 주소는 정수처럼 보이지만 자료형에 대한 정보를 갖고 있는 특별한 값입니다.따라서 연산을 자유롭게 할 수 없고 정해진 연산만 가능합니다.
  • 주소 + 정수 -> 주소 + (정수 * 주소에 해당하는 변수의 크기)
    • ex) int a; 에서 a가 100번지에 4바이트 만큼 공간을 갖고 있을때
    • &a + 1 -> 104번지(int형을 가리키는 주소 104번지, 104번지부터 107번지까지 4바이트 저장 공간의 주소 값

 

-------------------------------------------------------------------------------------------------------------

출처 : 혼자 공부하는 C언어

'Programming Language > C programming' 카테고리의 다른 글

[C] Struct 구조체  (0) 2021.02.24
[C] 배열  (0) 2021.02.22
[C] 16 -1 동적할당함수  (0) 2021.02.12
[C] temp 없이 Swap 하는 방법  (0) 2021.01.31
[C] C언어 강좌-2, C언어 컴파일 과정  (0) 2021.01.26
Comments