J'utilise C pour un projet de classe pour la première fois après avoir appris le C++, donc la syntaxe me tue ... Fondamentalement, je dois stocker une chaîne donnée par une fonction dans un autre variable pour une utilisation ultérieure.Pointeur, problème de chaîne en C
J'ai un tableau de caractères déclaré comme celui-ci
char foo[];
Une fonction que je me donne attribue un tas de personnages dans ce tableau (ou des pointeurs vers des personnages?). Je peux imprimer la chaîne réelle stockée dans foo comme celui-ci
printf("%s", foo);
Et je peux stocker son adresse dans une autre variable comme celui-ci
char *bar;
bar = &foo[0];
printf("%s", foo);
La chaîne complète est sortie très bien dans les deux cas. Cependant, comment puis-je stocker cette chaîne dans une variable différente? Si foo change, alors la barre ne tiendra plus la chaîne dont j'ai besoin puisqu'elle pointe juste vers foo. Tout ce que j'ai pensé me donne des erreurs de compilation comme
warning: initialization makes pointer from integer without a cast
Espérons que c'est assez d'infos. Merci pour l'aide à l'avance.
Merci pour les réponses rapides, je la méthode strdup et il a très bien fonctionné. Maintenant, je peux revenir à la partie réelle de la tâche et cesser de m'inquiéter de la syntaxe. Merci encore. –