본문 바로가기
TIL

[TIL] 20220905 성장일지

by 마두식 2022. 9. 6.
반응형
C언어
  • 동적 메모리 할당과 메모리 누수

 

  • 2차원 배열과 동적 할당

-  포인터 배열, 배열 포인터 2가지 방법 있음
-  포인터 배열
==>  2차원 배열의 구조를 갖지만 메모리에 연속적으로 값이 저장되지 않을 수 있음.
==>  원소에 접근하기 위해 두 단계 메모리 접근이 필요함
ex)  arr[3][2] -> arr[3]에 접근한 후, 해당 주소에서 다시 [2] 연산을 해야함.
==>  malloc 자체가 느린 함수중 하나이므로 호출 횟수는 최소한으로 해야함.
==>  배열 높이만큼 malloc을 호출해야 하는 이 방법은 높이가 커질수록 상당히 느려짐

 

-  배열 포인터
==>  메모리에 연속적으로 값이 저장되어 접근이 빠름.
==>  malloc을 한번한 호출하고 해제도 한번만에 끝낼 수 있음.

 

-  참고 링크 : 씹어먹는 C 언어 - <20 - 1. 동동동 메모리 동적할당(Dynamic Memory Allocation)> (modoocode.com)

 

  • 연결리스트와 배열

-  추가, 삭제, 삽입이 빈번하면 연결리스트 사용
-  검색이 빈번하면 배열 사용

 

  • 매크로, 인라인 함수
  • typedef, volatile, #pragma

 

  • 파일 입출력

-  참고 링크 1 : 씹어먹는 C 언어 - <23 - 2. 파일 하고 이야기 하기 (파일 입출력)> (modoocode.com)

-  참고 링크 2 : C 언어 레퍼런스 - fopen 함수 (modoocode.com)

 

  • 메모리 관련 함수

-  해당 부분은 정리할 내용이 길어질 것 같아서 별도 포스팅으로 정리했다. 앞으로도 진행하면서 이런 식으로 정리할 내용이 많을 것 같다.

-  포스팅 링크 : [C/C++] 메모리 관련 함수(memcpy, memmove, memcmp) (tistory.com)

 

 


 

 

C언어를 마무리했다.

2차원 배열, 동적할당, 헤더파일 등 사용 방법만 대충 익히고 넘어갔던 부분들에 대한 이론 개념을 다시 정립했으며, 파일 입출력 등 제대로 공부하지 않았던 뒷부분 내용까지 모두 살펴보았다.

 

지금까진 복습의 개념으로 실습보단 이론 위주로만 공부했지만 앞으로 공부할 C++은 실습도 직접 진행하며 이론에 대한 공부도 계속해서 진행할 계획이다.

 

 

 

 

 

반응형

'TIL' 카테고리의 다른 글

[TIL] 20220908 성장일지  (0) 2022.09.08
[TIL] 20220907 성장일지  (0) 2022.09.07
[TIL] 20220906 성장일지  (0) 2022.09.07
[TIL] 20220902 성장일지  (0) 2022.09.02
[TIL] 20220901 성장일지  (0) 2022.09.02

댓글