URL: https://linuxfr.org/forums/programmation-c--2/posts/pointeur-et-chaines-de-caract%C3%A8res Title: Pointeur et chaines de caractères... Authors: bue Date: 2005年08月29日T08:56:43+02:00 Tags: Score: 0 Bonjour, J'essayes de renvoyer un chaine de résultat, qui est de taille variable. Le pointeur est initialisé avec la valeur de getenv, si getenv ne renvoie pas de valeur, le pointeur de retour doit contenir NULL, dans le cas contraire il doit contenir le résultat entre guillemets : 'resultat' Je comprend bien que dans mon exemple, si getenv renvoi une valeur, et que je veux moi insérer dans le même pointeur cette valeur + quelquechose, il faudrait que je l'agrandisse... j'ai essayé avec realloc, mais ca n'a pas marché (je ne sais pas utiliser cette fonction peut-etre) Ce qui me perturbe, c'est que j'ai essayé de créer une variable char buf[100]; et que la aussi j'ai une erreur à la ligne 11 modifiée comme suit : buf = sprintf("%s",ptr_env); Si quelqu'un pouvait me dire comment écrire cette fonction proprement, ET SURTOUT m'expliquer quelle est l'erreur de compréhension qui me poursuit avec ces pointeurs !! :'( £spaces£ £/spaces1ドル #include <stdio.h> £spaces£ £/spaces2ドル #include <stdlib.h> £spaces£ £/spaces3ドル £spaces£ £/spaces4ドル £spaces£ £/spaces5ドル char *get_env(char * ptr_string){ £spaces£ £/spaces6ドル char *ptr_env; £spaces£ £/spaces7ドル ptr_env = getenv(ptr_string); £spaces£ £/spaces8ドル if (ptr_env == NULL) £spaces£ £/spaces9ドル ptr_env = "NULL"; £spaces£ £/spaces10ドル else{ £spaces£ £/spaces11ドル ptr_env=sprintf("'%s'",ptr_env); £spaces£ £/spaces12ドル } £spaces£ £/spaces13ドル return(ptr_env); £spaces£ £/spaces14ドル } £spaces£ £/spaces15ドル £spaces£ £/spaces16ドル /* £spaces£ £/spaces17ドル int main(){ £spaces£ £/spaces18ドル printf("%s\n",get_env("TS_VERSIOdN")); £spaces£ £/spaces19ドル } £spaces£ £/spaces20ドル */

AltStyle によって変換されたページ (->オリジナル) /