Pointeurs vers plusieurs éléments [*]T
Adressez une suite d'éléments.
Pointeurs vers plusieurs éléments [*]T est une leçon Zig Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Zig Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Zig Academy comprend 4 leçons au total.
Pointer vers une suite
Parfois, un pointeur adresse non pas une seule valeur, mais le début d’une suite de valeurs disposées en mémoire. 🧱
Le type [*]T
Un pointeur vers plusieurs éléments s’écrit [*]T. L’astérisque entre crochets signifie qu’il pointe vers un nombre inconnu de valeurs T consécutives.
var run: [*]u8 = undefined;Aucune longueur associée
Contrairement à une tranche, un pointeur vers plusieurs éléments ne contient aucune longueur. Vous seul devez savoir combien d’éléments peuvent être consultés sans danger.
Indexer comme un tableau
Vous pouvez indexer un pointeur vers plusieurs éléments avec des crochets : run[2] atteint le troisième élément en avançant dans la mémoire.
const third = run[2];Arithmétique des pointeurs
Ajouter une valeur à un pointeur vers plusieurs éléments le déplace d’un nombre entier d’éléments : run + 1 pointe un T plus loin, et non un octet plus loin.
const next = run + 1;Un seul ou plusieurs éléments
Un *T pointe vers exactement une valeur et ne peut pas être indexé ; un [*]T pointe vers plusieurs valeurs et prend en charge l’indexation et l’arithmétique.
D’où viennent-ils
Les pointeurs vers plusieurs éléments apparaissent souvent lors d’interactions avec C, qui transmet un pointeur brut vers un tampon dont la longueur est suivie séparément.
Aucune vérification des limites
Comme la longueur est inconnue, l’indexation d’un pointeur vers plusieurs éléments n’est pas vérifiée par rapport aux limites. Lire trop loin produit un comportement indéfini.
Préférer les tranches
Lorsque vous contrôlez le code, une tranche []T est plus sûre, car elle contient la longueur. Utilisez principalement [*]T aux frontières avec C.
Du pointeur à la tranche
Une fois le nombre d’éléments connu, associez une longueur avec ptr[0..n] pour transformer un pointeur vers plusieurs éléments en tranche sûre, avec vérification des limites.
const view = run[0..n];Il existe des variantes sentinelles
Zig possède également des formes terminées par une sentinelle, comme [*:0]u8, un pointeur dont la suite se termine à une valeur connue, telle qu’un octet nul.
var cstr: [*:0]const u8 = "hi";Vérification rapide
Comparez une tranche []T à un pointeur vers plusieurs éléments [*]T. Que manque-t-il à ce dernier ?
Récapitulatif
Un pointeur vers plusieurs éléments [*]T adresse une suite de valeurs, prend en charge l’indexation et l’arithmétique, ne contient aucune longueur et doit être converti en tranche lorsque c’est possible. 🎯
Questions Fréquemment Posées
La leçon « Pointeurs vers plusieurs éléments [*]T » est-elle gratuite ?
Oui — le texte complet de « Pointeurs vers plusieurs éléments [*]T » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Zig Academy, passe à CoddyKit PRO. Le cours Zig Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Pointeurs vers plusieurs éléments [*]T » ?
Adressez une suite d'éléments. Tu pratiques Zig Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Zig Academy ?
Aucune expérience préalable n'est requise. Zig Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Pointeurs vers plusieurs éléments [*]T » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Zig Academy ?
Oui. Chaque leçon Zig Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Pointeurs vers un seul élément avec *T
- Déréférencement avec ptr.*
- Pointeurs vers plusieurs éléments [*]T
- Pointeurs constants et alignement