docs(10_Wiki): 위키 구조 정리 — 언어 튜토리얼 카테고리 폴더 제거 + 신규 자산 동기화
Topic_CSS/Topic_HTML/Topic_JavaScript/Topic_Prompt/Topic_Comfyui 등 기존 카테고리 폴더를 정리하고, Topic_Graphic/Dev 등 신규 산출물과 Topics 내부 세션/메모리 기록을 동기화.
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
---
|
||||
id: c-memory-access
|
||||
title: "C Access Memory"
|
||||
category: "Programming_Language"
|
||||
status: "draft"
|
||||
verification_status: "conceptual"
|
||||
canonical_id: ""
|
||||
aliases: ["dynamic memory access", "reinterpreting bytes", "C 동적 메모리 접근"]
|
||||
duplicate_of: ""
|
||||
source_trust_level: "B"
|
||||
confidence_score: 0.85
|
||||
created_at: 2026-07-04
|
||||
updated_at: 2026-07-04
|
||||
review_reason: ""
|
||||
merge_history: []
|
||||
tags: ["c", "programming-language", "w3schools", "memory", "dynamic-memory"]
|
||||
raw_sources: ["https://www.w3schools.com/c/c_memory_access.php"]
|
||||
applied_in: []
|
||||
github_commit: ""
|
||||
---
|
||||
|
||||
# [[C Access Memory]]
|
||||
|
||||
## 🎯 한 줄 통찰 (One-line insight)
|
||||
Dynamically allocated memory has NO type of its own at all — it's "just a sequence of bytes," and the SAME 4 bytes can be read as one `int` OR as four separate `char` values depending purely on which pointer TYPE you use to view them, proven by the example where `ptr1[0] = 1684234849` (an int) and `ptr2[0..3]` (a char reinterpretation of the identical bytes) both successfully read the same memory as completely different things. [S1]
|
||||
|
||||
## 🧠 핵심 개념 (Core concepts)
|
||||
- **Dynamic memory behaves like an array** — indexable via `ptr[i]` or dereferenceable via `*ptr` for the first element, just like a regular array. [S1]
|
||||
- **No inherent data type** — allocated memory is raw bytes; its "type" is entirely a matter of interpretation, determined by whatever pointer type is used to access it. [S1]
|
||||
- **Type reinterpretation via pointer casting** — casting an `int*` to a `char*` (`(char*) ptr1`) lets the SAME underlying bytes be read as individual characters instead of one integer. [S1]
|
||||
- **Index vs. dereference for the first element** — `ptr[0] = 12;` and `*ptr = 12;` are equivalent ways to write to the first allocated element. [S1]
|
||||
|
||||
## 📖 세부 내용 (Details)
|
||||
- Allocating and accessing dynamic memory both ways: `int *ptr; ptr = calloc(4, sizeof(*ptr)); *ptr = 2; ptr[1] = 4; ptr[2] = 6;`. [S1]
|
||||
- Reinterpreting the same 4 bytes as an int vs. four chars: `int *ptr1 = malloc(4); char *ptr2 = (char*) ptr1; ptr1[0] = 1684234849; printf("%d is %c %c %c %c", *ptr1, ptr2[0], ptr2[1], ptr2[2], ptr2[3]);` — the same 4 bytes printed once as a number and once as four ASCII characters. [S1]
|
||||
|
||||
## ⚖️ 모순 및 업데이트 (Contradictions & updates)
|
||||
- **할당된 메모리는 타입이 없는 바이트 시퀀스**: 동일한 4바이트 메모리가 포인터 타입에 따라 하나의 int로도, 4개의 char로도 해석될 수 있다는 점이 직접 예시로 증명됨 — 타입은 데이터 자체가 아니라 접근 방식이 결정한다. [S1]
|
||||
|
||||
## 🛠️ 적용 사례 (Applied in summary)
|
||||
현재 발견된 실제 적용 사례가 없습니다 — 동일한 메모리를 int 포인터와 char 포인터로 각각 해석하는 기법이 저수준 바이트 조작이나 타입 캐스팅이 필요한 실전 상황에서 활용된다. [S1]
|
||||
|
||||
## 💻 코드 패턴 (Code patterns)
|
||||
The same 4 bytes of allocated memory reinterpreted as an int vs. four chars via pointer casting (C):
|
||||
```c
|
||||
int *ptr1 = malloc(4);
|
||||
char *ptr2 = (char*) ptr1;
|
||||
ptr1[0] = 1684234849;
|
||||
printf("%d is %c %c %c %c", *ptr1, ptr2[0], ptr2[1], ptr2[2], ptr2[3]);
|
||||
```
|
||||
|
||||
## ✅ 검증 상태 및 신뢰도
|
||||
- **상태:** draft
|
||||
- **검증 단계:** conceptual
|
||||
- **출처 신뢰도:** B (W3Schools — widely used educational reference, not a primary standards body)
|
||||
- **신뢰 점수:** 0.85
|
||||
- **중복 검사 결과:** 신규 생성 (New discovery)
|
||||
|
||||
## 🔗 지식 그래프 (Knowledge Graph)
|
||||
- **상위/루트:** [[C Tutorial]]
|
||||
- **관련 개념:** [[C Pointer To Pointer]], [[C Memory Management]], [[C Memory Allocate]]
|
||||
- **참조 맥락:** 동적 메모리 접근 — 메모리 관리(Memory Management) 챕터로 이어짐.
|
||||
|
||||
## 📚 출처 (Sources)
|
||||
- [S1] W3Schools — C Access Memory — https://www.w3schools.com/c/c_memory_access.php
|
||||
|
||||
## 📝 변경 이력 (Change history)
|
||||
- 2026-07-04: Initial draft synthesized from the W3Schools "C Access Memory" page (Astra wiki-curation, P-Reinforce v3.1 format).
|
||||
Reference in New Issue
Block a user