如何使用asprintf

时间:2015-06-26 17:05:09

标签: c

我想创建一些像这样的想法:

void funkcja(char *charTmp2){
    asprintf(&charTmp2, "%i %.2f %s", 2, 3.20, "PIERWSZY");
}

int main() {
    char *tmp;
    funkcja(tmp);
    printf("%s\n", tmp);
}

我不知道为什么,没有输出。请帮帮我!

1 个答案:

答案 0 :(得分:0)

问题是funkcja()只是改变它的指针的本地副本,试试这个

ssize_t funkcja(char **charTmp2)
 {
    return asprintf(charTmp2, "%i %.2f %s", 2, 3.20, "PIERWSZY");
 }

int main() 
 {
    char *tmp;
    if (funkcja(&tmp) != -1)
     {
        printf("%s\n", tmp);
        free(tmp)
     }
 }