J'essaie de concaténer une chaîne avec un entier converti en chaîne et écrire le résultat dans un fichier.Convertir int en chaîne et concaténer le résultat
Il est mon code (simplifié):
char * convert_int_string(int val)
{
char * str = malloc(sizeof(char)*64);
sprintf(str,"%d",val);
return str;
}
char * parse_val(int val){
char * str = malloc(sizeof(char)*64);
char * str2 = convert_int_string(val);
strcat(str, "test");
strcat(str,str2);
free(str2);
return str;
}
fprintf(my_file, "%s\n", parse_val(42));
Mais j'obtenir ce résultat et je ne comprends pas pourquoi (ici val est égal à 42):
��7s�test42
(je ce poste How do I concatenate const/literal strings in C? et celui-ci How to convert integer to string in C?)
'strcat (str," test ");' -> 'strcpy (str," test ");' : Le bloc mémoire retourné par 'malloc' n'est pas initialisé. – BLUEPIXY
'str' dans' parse_val() 'a été alloué de la mémoire mais vous ne pouvez pas' concat' sans initialiser cette mémoire. –
Bien, merci @BLUEPIXY. Fonctionne bien – Eraseth