Bonjour,
Je souhaiterais récupérer la taille max ou en quelque sorte le "sizeof" d'un char* passé en argument d'une fonction (et donc sans fournir la taille en argument, juste le char*).
Voici un exemple pour illustrer:
J'ai essayé plusieurs manières en vain, je précise que je souhaite trouver une solution sans fournie la taille en argument:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 void f(char* str) { // ici besoin de la taille de str pour y copier une longue chaine de caractère constante // du genre strncpy(str, ???, constString); } int main() { char buf[32]; f(buf); return 0; }
Le problème c'est que je pensais pouvoir récupérer la taille par un sizeof(str) mais cela renvoie la taille d'un pointeur (4 octets).
Code : Sélectionner tout - Visualiser dans une fenêtre à part void f(char* str, unsigned int size);
Je précise que "buf" est vide ou plutot non-initialisé avant d'être passé à la fonction f(), donc strlen(str) donnera zéro.
Voilà, donc si vous avez une solution, je suis preneur.
Merci de votre aide.
Partager