[*]T 다중 항목 포인터
연속된 여러 요소의 주소를 가리킵니다.
[*]T 다중 항목 포인터은(는) CoddyKit의 무료 Zig Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Zig Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Zig Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
이 강의의 일부는 아직 번역되지 않았으며 영어로 표시됩니다.
Pointing at a Run
Sometimes a pointer addresses not one value but the start of a sequence of values laid out in memory. 🧱
The [*]T Type
A many-item pointer is written [*]T. The star inside the brackets means it points at an unknown number of T values in a row.
var run: [*]u8 = undefined;No Length Attached
Unlike a slice, a many-item pointer carries no length. You alone must know how many elements are safe to touch.
Index Like an Array
You can index a many-item pointer with brackets, so run[2] reaches the third element by stepping forward in memory.
const third = run[2];Pointer Arithmetic
Adding to a many-item pointer moves it by whole elements, so run + 1 points one T further along, not one byte.
const next = run + 1;Single vs Many
A *T points at exactly one value and cannot be indexed; a [*]T points at many and supports indexing and arithmetic.
Where They Come From
Many-item pointers often appear when talking to C, which passes a bare pointer to a buffer with the length tracked separately.
No Bounds Checks
Because the length is unknown, indexing a many-item pointer is not bounds-checked. Reading too far is undefined behavior.
Prefer Slices
When you control the code, a slice []T is safer because it bundles the length. Reach for [*]T mainly at C boundaries.
From Pointer to Slice
Once you know the count, attach a length with ptr[0..n] to turn a many-item pointer into a safe, bounds-checked slice.
const view = run[0..n];Sentinel Variants Exist
Zig also has sentinel-terminated forms like [*:0]u8, a pointer whose run ends at a known value such as a zero byte.
var cstr: [*:0]const u8 = "hi";Quick Check
Compare a slice []T with a many-item pointer [*]T. What does the many-item pointer lack?
Recap
A many-item pointer [*]T addresses a run of values, supports indexing and arithmetic, has no length, and is best converted to a slice when possible. 🎯
자주 묻는 질문
“[*]T 다중 항목 포인터” 강의는 무료인가요?
네 — “[*]T 다중 항목 포인터” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Zig Academy 강의 전체를 잠금 해제할 수 있습니다. Zig Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“[*]T 다중 항목 포인터”에서 뭘 배우나요?
연속된 여러 요소의 주소를 가리킵니다. 브라우저에서 직접 실행하는 실습 코드로 Zig Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Zig Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Zig Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“[*]T 다중 항목 포인터” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Zig Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Zig Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- *T를 사용하는 단일 항목 포인터
- ptr.*로 역참조하기
- [*]T 다중 항목 포인터
- 상수 포인터와 정렬