Я пытаюсь объединить строку с целым числом, преобразованным в строку, и записать результат в файл.Преобразовать int в строку и объединить результат
Существует мой код (упрощенно):
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));
Но я получаю этот результат, и я не понимаю, почему (здесь Допустимы равен 42):
��7s�test42
(я использовал этот пост How do I concatenate const/literal strings in C? и этот How to convert integer to string in C?)
'strcat (str," test ");' -> 'strcpy (str," test ");' : Ярлык памяти, возвращаемый 'malloc', не инициализируется. – BLUEPIXY
'str' в' parse_val() 'выделена память, но вы не можете' concat', не инициализируя эту память. –
Ницца, спасибо @BLUEPIXY. Хорошо работает – Eraseth