9a135bd19d
최상위 10_Wiki/Topic_*였던 4개 카테고리 폴더를 10_Wiki/Topics/Topic_* 로 재배치. 콘텐츠 변경 없음(순수 폴더 이동) — Topics/ 하위 나머지 폴더는 이미 지난 커밋에서 전부 정리된 상태(잔존 항목은 에이전트 운영 상태 및 사용자가 보존을 요청한 업데이트0615/무제 3.canvas 뿐).
3.6 KiB
3.6 KiB
id, title, category, status, verification_status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, created_at, updated_at, review_reason, merge_history, tags, raw_sources, applied_in, github_commit
| id | title | category | status | verification_status | canonical_id | aliases | duplicate_of | source_trust_level | confidence_score | created_at | updated_at | review_reason | merge_history | tags | raw_sources | applied_in | github_commit | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| c-arrays | C Arrays | Programming_Language | draft | conceptual |
|
B | 0.86 | 2026-07-04 | 2026-07-04 |
|
|
C Arrays
🎯 한 줄 통찰 (One-line insight)
Mixing types in an array literal (int myArray[] = {25, 50, 75, 3.15, 5.99};) doesn't always fail loudly — the source shows the float values 3.15/5.99 get silently TRUNCATED to 3/5 (since the array is typed int), and only "in some cases" does it produce an error, meaning the type-mismatch guard here is a silent-data-loss trap more often than a hard compile failure. [S1]
🧠 핵심 개념 (Core concepts)
- Array literal creation —
type name[] = {val1, val2, ...};creates and initializes an array in one step. [S1] - Zero-based indexing —
[0]is the first element,[1]the second, and so on. [S1] - Mutable elements — any element can be reassigned by index after creation (
myNumbers[0] = 33;). [S1] - Size-first declaration —
int myNumbers[4];reserves space for 4 elements to be filled in later; the SIZE CANNOT CHANGE after creation. [S1] - Same-type requirement — all elements must share one data type; mismatched types get silently truncated/converted, not cleanly rejected. [S1]
📖 세부 내용 (Details)
- Literal array creation and access:
int myNumbers[] = {25, 50, 75, 100}; printf("%d", myNumbers[0]); // 25. [S1] - Modifying an element by index:
myNumbers[0] = 33; // Now outputs 33 instead of 25. [S1] - Size-first, fill-later declaration:
int myNumbers[4]; myNumbers[0] = 25; myNumbers[1] = 50; myNumbers[2] = 75; myNumbers[3] = 100;. [S1] - Type-mismatch truncation trap:
int myArray[] = {25, 50, 75, 3.15, 5.99};— 3.15 and 5.99 silently become 3 and 5. [S1]
⚖️ 모순 및 업데이트 (Contradictions & updates)
- 타입이 섞이면 조용히 잘림: int 배열에 float 값을 넣으면 항상 에러가 나는 게 아니라 대부분 소수점이 잘려나가는 형태로 조용히 처리되며, 일부 경우에만 에러가 발생한다는 점이 명시적으로 경고됨. [S1]
🛠️ 적용 사례 (Applied in summary)
현재 발견된 실제 적용 사례가 없습니다 — 크기를 먼저 선언하고 나중에 요소를 채우는 방식이 데이터가 순차적으로 들어올 때(예: 사용자 입력 반복) 실전에서 활용된다. [S1]
💻 코드 패턴 (Code patterns)
Declaring an array's size first, then filling in elements later (C):
int myNumbers[4];
myNumbers[0] = 25;
myNumbers[1] = 50;
myNumbers[2] = 75;
myNumbers[3] = 100;
✅ 검증 상태 및 신뢰도
- 상태: draft
- 검증 단계: conceptual
- 출처 신뢰도: B (W3Schools — widely used educational reference, not a primary standards body)
- 신뢰 점수: 0.86
- 중복 검사 결과: 신규 생성 (New discovery)
🔗 지식 그래프 (Knowledge Graph)
- 상위/루트: C Tutorial
- 관련 개념: C Break Continue, C Arrays Size
- 참조 맥락: 배열 섹션 첫 챕터 — 배열 크기(Arrays Size) 챕터로 이어짐.
📚 출처 (Sources)
- [S1] W3Schools — C Arrays — https://www.w3schools.com/c/c_arrays.php
📝 변경 이력 (Change history)
- 2026-07-04: Initial draft synthesized from the W3Schools "C Arrays" page (Astra wiki-curation, P-Reinforce v3.1 format).