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