小编Fab*_*bio的帖子

printf with arguments函数返回指向char的指针

嗨,我试着设置一个类似的代码

#include <stdio.h>

struct _data;
typedef struct _data data;
typedef struct _data {
    double x;
    double y;
} data;

const char* data_tostring(data* a) {
    static char buffer[255];
    sprintf(buffer, "%f %f", a->x, a->y);
    return buffer;
}

int main(){
    data a;
    data b;
    a.x = 0;
    a.y = 0;
    b.x = 1;
    b.y = 1;
    printf("%s %s \n", data_tostring(&a), data_tostring(&b));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我期望输出为0 0 1 1,但实际上我得到0 0 0 0.我是否错误地使用static关键字和返回值data_tostring()

谢谢您的帮助.

c printf

0
推荐指数
1
解决办法
44
查看次数

标签 统计

c ×1

printf ×1