본문 바로가기

C2

동적 메모리 할당 | 기본 개념, 메모리 누수, 단편화 1. 동적 메모리 할당(Dynamic Memory Allocation)이란? 프로그램이 실행되는 동안 메모리의 크기가 변할 수 있는 변수나 데이터 구조에 메모리를 할당하는 과정을 동적 메모리 할당이라 한다. 이를 통해 런타임에 필요한 메모리 양을 결정하고, 더 이상 필요하지 않은 메모리를 반환하여 재사용할 수 있게 한다. 동적 할당을 통해 메모리 사용을 최적화하고, 프로그램 유연성을 개선할 수 있다. 우선 개념적인 얘기부터 보고, 그 다음에 실제로 어떻게 구현하는지 살펴보자. 동적 vs 정적 메모리 할당 역사적으로 볼 때, 정적 메모리 할당이 먼저 있었고, 프로그램의 요구사항과 컴퓨팅 환경이 발전함에 따라 동적 메모리 할당이 필요해지고 후행적으로 등장했다고 볼 수 있다. 초기에는 정적 메모리 할당이 더 .. 2023. 11. 4.
C 언어 | 구조체 (Structure, struct) 구조체는 C언어에서 복잡한 데이터를 관리하고, 의미있게 정보를 조직화하는데 있어 필수적인 도구다. C에서 구조체(structure)는 하나 이상의 서로 다른 타입의 변수들을 묶어 새로운 타입을 정의할 수 있게 해준다. 이는 관계있는 서로 다른 데이터들을 하나의 단위로 처리할 수 있게 한다. 구조체는 Java의 클래스와 거의 유사하다. 다만 메서드를 포함하지 않고 필드만 지닌다는 점? 그리고 객체지향적 개념들이 포함되지 않아 훨씬 단순한 구조라고 볼 수 있다. 이번에 알아본 것은 다음과 같다. struct, 구조체 변수 선언 및 멤버 접근, 구조체가 메모리에 할당되는 방식, 구조체를 함수 인자로 전달하기, 구조체 배열, 구조체 포인터, 중첩 구조체, typedef 1. 구조체 기본 문법 구조체 선언: st.. 2023. 11. 4.