Language/C 3

[C] 구조체(Structure)

구조체 개요 프로그래밍을 하다 보면 서로 다른 타입의 변수들을 하나의 단위로 묶어야 할 때가 있다. 예를 들어, 학생들의 점수를 관리하는 프로그램을 만든다고 가정해 보자. 학생들의 이름을 저장해야 하므로 문자형 배열, 점수가 필요하므로 정수, 혹은 실수형 데이터가 필요할 것이다. 즉, 학생 한 명당 여러 개의 변수가 필요하므로, 학생 수가 많아질수록 관리해야 할 변수의 수가 기하급수적으로 늘어난다. 이는 가독성의 저하와 코드의 복잡성 증대로 인해 오류 발생 가능성을 야기한다. 이런 문제점을 해결하기 위한 방법으로 구조체를 사용하는 것이 매우 효과적이다. 구조체(Struct)는 서로 다른 타입의 변수들을 하나의 논리적 단위로 묶는 사용자 정의 타입이다. 위의 예시에서 구조체를 이용하여 각 학생들의 정보를 ..

Language/C 2024.01.31

[C] 메모리 동적 할당

동적 할당 개요 이번 시간에는 C 언어의 핵심 요소 중 하나인 메모리 관리와 동적 할당에 대해 집중적으로 살펴보겠다. 동적 할당(Dynamic Allocation)은 프로그램 실행(런타임) 도중 필요한 메모리 공간을 할당하는 과정으로, 메모리 자원이 제한적인 환경에서 특히 중요하다. C 언어는 malloc, calloc, realloc, free와 같은 함수를 통해 개발자가 메모리를 효율적으로 관리할 수 있도록 지원한다. 이러한 동적 할당 메커니즘을 통해, 개발자는 필요한 메모리만을 할당하고, 사용이 끝난 메모리를 해제함으로써 시스템의 메모리 사용을 최적화할 수 있다. 본문 사용 이유 동적 메모리 할당과 해제는 C언어에서 메모리 사용의 효율성을 높이는 중요한 역할을 한다. 정적 할당 방식에서는 프로그램이..

Language/C 2024.01.29

[C] 포인터(Pointer)

Pointer 개요 포인터(Pointer)는 프로그래밍에서 광범위하게 사용되는 개념으로, 특히 C 언어와 같은 저수준 프로그래밍 언어에서 중요한 역할을 한다. 포인터는 메모리의 주소를 저장하고, 이를 통해 다양한 데이터에 간접적으로 접근할 수 있는 변수다. C 언어에서 포인터는 메모리 관리, 배열과 문자열 처리, 동적 메모리 할당, 데이터 구조체 구현 등 여러 분야에서 핵심적인 도구로 사용된다. 이러한 포인터의 사용은 프로그램의 유연성과 효율성을 높이는 동시에, 복잡하고 섬세한 메모리 관리를 가능하게 한다. 본문에서는 포인터가 C 언어에서 어떻게 동작하며, 왜 그렇게 널리 사용되는지에 대해 자세히 살펴보겠다. 본문 사용 이유 포인터를 사용하면 메모리를 효율적으로 사용할 수 있다. 이는 포인터를 사용하면 ..

Language/C 2024.01.22