sprintf转换int到字符串不起作用

时间:2013-07-08 22:26:17

标签: printf type-conversion

我有很多不同的方法来实现这种转换,但都失败了。我需要将55转换为字符串。

#include <stdio.h>
#include <stdlib.h>

int main(void) {
    double time = 55;
    char *buffer = ""; //char *buffer; doesnt work either
    sprintf(buffer, "%d\n", time);//without newline doesnt work either
    printf("%s",buffer);
}

1 个答案:

答案 0 :(得分:0)

您当前正在设置不属于"55\n"的内存。您必须在堆栈上分配内存,然后使用以下代码修改(替换char *buffer = "";行):

char buffer[4] = { 0 };

这是为'5''5''\n''\0'创造足够的空间。