C est toujours assez difficile avec les chaînes, mais il est généralement acceptable d'allouer juste un tableau char de taille 256 pour votre chaîne et être avec elle.Renvoyer des chaînes à partir de fonctions dont la longueur est inattendue?
Cependant, que se passe-t-il si vous voulez que la fonction retourne une chaîne et que vous ne connaissiez pas la taille, puisque vous allez concaténer des chaînes ensemble des dizaines ou des centaines de fois? Évidemment quelque chose comme ça ne fonctionnera pas:
char * my_function(int n, char *string){
if (n < 20) {
return string;
}
else {
char *new_string = "abcdefghijklmnop";
strcat(string, new_string);
return my_function(n--, string);
}
}
Alors, comment cela est-il géré dans c?
Il est généralement acceptable d'utiliser un tableau de 256 caractères jusqu'à ce qu'il ne va pas bien, et il est alors appelé un débordement de mémoire tampon, ce qui est une mauvaise chose. Ne comptez pas sur de telles hypothèses, ** assurez-vous toujours que vos chaînes tiennent dans la mémoire disponible. – Secure