Buffer de caracteres et pointeur.
Bonjour je dois utiliser un morceau de code du type :
Code:
1 2 3 4 5 6
|
/*...*/
#define MAX 1025
char buffer[MAX];
char* buffer_ptr;
/*...*/ |
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:
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;
} |
mais je ne vois pas vraiment l intérêt de procéder de la sorte par rapport à l'utilisation d'un
en lieu et place du buffer_ptr et une utilisation du genre :
Code:
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;}
} |
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.
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 :cry: