0
我听说有一个sprintf()
版本,可能是一个GNU/gcc扩展,要么分配自己的缓冲区,我必须free()
或可能使用堆栈像alloca()
。C sprintf函数,使用malloc或堆栈
这两种方法都适合我。谁能告诉我我在想什么功能?
我听说有一个sprintf()
版本,可能是一个GNU/gcc扩展,要么分配自己的缓冲区,我必须free()
或可能使用堆栈像alloca()
。C sprintf函数,使用malloc或堆栈
这两种方法都适合我。谁能告诉我我在想什么功能?
你可能是指asprintf?
从手册页:
说明
功能asprintf()和vasprintf()是的sprintf()和vsprintf()的类似物,除了它们分配一个串足够大以容纳包括终止空字节的输出,并通过第一个参数返回指向它的指针。这个指针应该被传递给free(3),以在不再需要的时候释放分配的存储。
注意asprintf是GNU扩展,这也是在各种BSD实现中,但它不是在标准C或POSIX。
这个函数是非标准的并不重要,因为它可以作为'vsnprintf'(标准C99)或'open_memstream'和'vfprintf'(分别为POSIX 2008和C89)的简单包装来实现。 – 2011-04-01 12:22:18