Connaitre la taile d'un tableau de caractere

bonjour, j'ai un tableau de char (sans utiliser des fonctions existante String etc ...)

char buffer[256];
Je ne peux pas utiliser strlen car le tableau contient des bytes binary.

j'ai essayer ceci mais ca ne fonctionne pas.

size = (sizeof(&buffer) / sizeof(buffer[0]));
ou
size = (sizeof(&buffer[0]) / sizeof(buffer[0]));
ou
size = (sizeof(buffer) / sizeof(buffer[0]));

J'utilise le buffer comme paramètre d'une fonction.

void myfunc(char *buffer);

et à l'intérieur de cette fonction, je veux connaitre la longueur du buffer (length).

Avez vous une idée ?
Merci.

Si tu veux avoir la taille d'une buffer casté en char*, il faut que tu passe la taille de ton tableau dans la fonction avec un truc du genre si buffer est connu

myfunc(buffer, sizeof(buffer));

Pas possible comme cela

Pour le dire simplement, Un tableau passé en paramètre perd ses attributs pour devenir un simple pointeur sur la première case du tableau . On parle de array to pointer decay dans la norme.

Donc il faut passer aussi la taille comme paramètre de la fonction

merci pour ces informations, en effet je recupère bien la taille du tableaux déclarer, mais je me suis mal expliqué en fait, ce que je voulais c'est la taille du tableau rempli.

mon tableau fait par exemple 2048.

dans ce tableau il se peut qu'il contienne que 20 car.

ce que que vous m'avez proposer c'est bon, ca me retourne 2048, mais moi je veux que ca me retourne 20, donc le nombre de car dans le tableau.

il n'y a pas de zero final.

C++ ne sait pas si le tableau est rempli ou pas, vous avez juste des cases.
A vous de mémoriser jusqu’à quel indice vous avez stocké des éléments

Sinon il faut utiliser des containers C++ (vecteurs, listes diverses et variées) qui eux savent gérer un contenu dynamique mais on fait attention à cela sur petit microcontroller car on a peu de memoire

Ah oui exact j'avais oublié, je connais l'indice de fin, je vais tester cela.Merci.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.