0
정수로 문자열을 연결하여 문자열로 변환하고 결과를 파일에 쓰려고합니다.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
(I 사용 이 게시물 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
'parse_val()'의'str'에 메모리가 할당되었지만 그 메모리를 초기화하지 않고는'concat' 할 수 없습니다. –
니스, 고마워요 @BLUEPIXY. 'strcat (str, "test");에' – Eraseth