2011-11-05 2 views
0

Je suis en train de définir un nom de variable et valeur de la variable dans l'environnement de Windows en utilisant cette fonctionComment mettre 2 tableaux char dans int putenv (chaîne char *); en C

void env_add(char varname[], char varvalue[]) { 

} 

Le problème est que je ne sais pas comment mettre ces deux variables à int putenv(char *string);

Dois-je les combiner en un tableau de caractères ou non?

Merci

Répondre

2

Oui, vous devez les combiner en une seule chaîne. La chaîne a la forme "nom = valeur".

char* buffer = (char*) malloc(strlen(name) + 1 + strlen(value) + 1); 

strcpy(buffer, name); 
strcat(buffer, "="); 
strcat(buffer, value); 

putenv(buffer); 

free(buffer); 
+0

Pouvez-vous s'il vous plaît me montrer un exemple de la fusion des réseaux type char parce que je l'ai essayé avec quelques boucles pour mettre les deux tableaux dans un troisième sans effet car il doit contenir le signe « = » entre le nom de la variable et la valeur variable – Reyko

+0

@ utilisateur1031654: J'ai juste édité ma réponse pour inclure un exemple de comment vous le feriez. –

+0

Il me donne ce message d'erreur: void * _cdeclmalloc (size_t_Size) Erreur: une valeur de type "void *" ne peut pas être utilisée pour initialiser une entité de type "char *" – Reyko