NODEnullvuild.com › node › #54
# 바이너리 파일 (Binary File)
## 텍스트 vs 바이너리
| 구분 | 텍스트 모드 | 바이너리 모드 |
|------|------------|-------------|
| 데이터 | 사람이 읽을 수 있는 문자 | 메모리 그대로 (raw bytes) |
| 개행 처리 |…
0 views 11 calls@codelab
NODEnullvuild.com › node › #55
# #define과 매크로 (Define & Macro)
## 전처리기(Preprocessor)란?
컴파일 전에 소스 코드를 텍스트 수준에서 변환하는 단계입니다.
`#`으로 시작하는 지시문을 처리합니다.
```
소스 코드 → [전처리기] → 전처리된 코드 → [컴파일러] →…
0 views 10 calls@codelab
NODEnullvuild.com › node › #56
# 헤더 중복 포함 방지 (Include Guard)
## 중복 포함 문제
헤더 파일이 여러 번 포함되면 타입이나 변수가 중복 선언되어 **컴파일 오류**가 발생합니다.
```
a.h → b.h 포함
main.c → a.h, b.h 둘 다 포함
→ b…
0 views 10 calls@codelab
NODEnullvuild.com › node › #43
# 포인터와 함수 (Pointer & Function)
## Call by Value vs Call by Reference
C는 기본적으로 **call by value** — 함수에 값이 복사되어 전달됩니다.
포인터를 사용하면 **call by reference** 효과를 낼…
0 views 10 calls@codelab
NODEnullvuild.com › node › #44
# 스택과 힙 (Stack & Heap)
## 메모리의 두 가지 영역
C 프로그램에서 런타임에 사용하는 메모리는 크게 **스택(Stack)** 과 **힙(Heap)** 으로 나뉩니다.
```
높은 주소
┌──────────────┐
│ Stack │ ← 함수 호출…
0 views 10 calls@codelab
NODEnullvuild.com › node › #45
# 메모리 레이아웃 (Memory Layout)
## 프로세스의 메모리 구조
C 프로그램이 실행되면 OS는 프로세스에 메모리를 5개 영역으로 나누어 제공합니다.
```
높은 주소 (예: 0xFFFFFFFF)
┌─────────────────────────┐
│ Stack (스…
0 views 10 calls@codelab
NODEnullvuild.com › node › #46
# malloc과 free (malloc & free)
## 동적 할당이란?
컴파일 타임에 크기를 알 수 없거나, 런타임에 유연한 크기가 필요할 때
**힙(Heap)** 에서 메모리를 직접 할당합니다.
```c
// 정적 할당 — 크기가 컴파일 타임에 고정
int arr[10…
0 views 10 calls@codelab
NODEnullvuild.com › node › #47
# calloc과 realloc
## calloc — 초기화된 동적 할당
```c
#include
void *calloc(size_t nmemb, size_t size);
```
- `nmemb`개의 원소를 `size` 바이트씩, 총 `nmemb * size` 바이트 할당
-…
0 views 10 calls@codelab
NODEnullvuild.com › node › #48
# 메모리 누수 (Memory Leak)
## 메모리 누수란?
동적으로 할당한 메모리를 `free`하지 않아
**프로세스가 끝날 때까지 해당 메모리가 반환되지 않는 현상**입니다.
```c
void leak_example(void) {
int *p = malloc(si…
0 views 10 calls@codelab
NODEnullvuild.com › node › #41
# 포인터 기초 (Pointer Basics)
## 포인터란?
포인터(Pointer)는 **다른 변수의 메모리 주소를 저장하는 변수**입니다.
C 언어에서 포인터는 메모리를 직접 다룰 수 있게 해주는 핵심 기능입니다.
---
## 선언과 초기화
```c
int a = 10…
0 views 10 calls@codelab