2011-01-19 115 views
0

我試圖將asprintf()移植到Windows,因爲它在Linux上是GCC庫函數,並且在Windows上不存在。在C中計算Var參數長度

我一直在計算var args的長度,所以我可以爲它們分配內存。我嘗試兩種方法:

  1. 寫變參到一個文件,然後取函數的結果(這是一個字節寫入=變參長度的數目),因爲用戶將看到內部,但其傻在他的應用程序目錄

  2. 使用功能vsprintf()用NULL作爲第一個參數(寫輸出變量)隨機數據,以便返回變參的長度,但是這一次失敗,因爲它適用於XP只,Windows 7的不允許寫入一個NULL變量。

有關如何解決這個問題的更多想法?

回答

5

使用_vscprintf而不是嘗試,它只返回所需的數(不包括終止空)

+0

太感謝你了:),我從來不知道這樣的功能存在 – killercode 2011-01-19 15:45:15