Bonjour je dois utiliser un morceau de code du type :
J'imagine que l esprit de ces déclarations est d utiliser buffer_ptr pour pointer sur le caractere courant dans le tableau buffer pour faire un truc du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 /*...*/ #define MAX 1025 char buffer[MAX]; char* buffer_ptr; /*...*/
mais je ne vois pas vraiment l intérêt de procéder de la sorte par rapport à l'utilisation d'un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 /* ....Quelque part 'avant', dans main par exemple */ buffer_ptr = &(buffer[0]); int AppendBuffer (const char c) { *(buffer_ptr++)=c; /* J ai bien conscience que je ne gere pas du tout la fin de buffer * C est justement autour de ca que porte ma question */ return 1; }
en lieu et place du buffer_ptr et une utilisation du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int buffer_index = 0;
J'ai l'impression que l'utilisation de buffer_ptr ne me permet pas a elle seule de gérer un eventuel depassement de la taille du buffer et que de toutes facons, je suis obligé de définir et maintenir un buffer_index.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 /* ....Quelque part 'avant', dans main par exemple */ buffer_ptr = &(buffer[0]); int AppendBuffer (const char c) { if (buffer_index < MAX) { buffer[buffer_index++]=c; return 1;} else {return 0;} }
En plus clair (si ce n'est pas deja la cas) puis je ajouter un caractere a mon buffer en prenant en compte la taille de ce dernier et sans utiliser d'index numérique ?
J'ai la (très) désagréable impression de passer à côté d'un truc important
Partager