Moui, c'est correct écrit de la sorte. Faut quand même faire attention, parce que si tu appelles une deuxième fois la fonction init_chaine(), le buffer de ton premier appel va être écrasé (ce qui n'est pas toujours évident à garantir, surtout lorsque les appels de fonctions sont imbriqués sur un paquet de niveau).
Pour une meilleure encapsulation, je te conseillerais d'utiliser des variables statiques :
Code :
#include <stdio.h> #include <string.h> #include <stdlib.h> char *init_chaine(void) { static char chaine[10] // chaine est maintenant globale return strcpy(chaine,"Salut" ); // Remplit la chaine } int main(void) { char *p; p = init_chaine(); }
|