JOS*_*OSI 1 c malloc strcat garbage
我如何防止或绕过我的变量中的垃圾valus malloc put?附上代码和输出!谢谢!
#include <stdio.h>
#include "stdlib.h"
#include <string.h>
int main() {
    char* hour_char = "13";
    char* day_char = "0";
    char* time = malloc(strlen(hour_char)+strlen(day_char)+2);
    time = strcat(time,day_char);
    time = strcat(time,"-");
    time = strcat(time,hour_char);
    printf("%s",time);
    free(time);
}
这是我得到的输出:
á[?0-13
第一个strcat是不正确的,因为malloc-ed内存未初始化.而不是strcat用于第一次写,使用strcpy.这是有道理的,因为最初time没有连接任何东西的字符串.
time = strcpy(time, day_char);
time = strcat(time, "-");
time = strcat(time, hour_char);
更好的是,使用sprintf:
sprintf(time, "%s-%s", day_char, hour_char);
| 归档时间: | 
 | 
| 查看次数: | 760 次 | 
| 最近记录: |