Récupérer taille allouée d'un char* passé en argument d'une fonction
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:
Code:
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;
} |
J'ai essayé plusieurs manières en vain, je précise que je souhaite trouver une solution sans fournie la taille en argument:
Code:
void f(char* str, unsigned int size);
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).
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.