在C中计算Var参数长度

问题描述:

我试图将asprintf()移植到Windows,因为它在Linux上是GCC库函数,并且在Windows上不存在。在C中计算Var参数长度

我一直在计算var args的长度,所以我可以为它们分配内存。我尝试两种方法:

  1. 写变参到一个文件,然后取函数的结果(这是一个字节写入=变参长度的数目),因为用户将看到内部,但其傻在他的应用程序目录

  2. 使用功能vsprintf()用NULL作为第一个参数(写输出变量)随机数据,以便返回变参的长度,但是这一次失败,因为它适用于XP只,Windows 7的不允许写入一个NULL变量。

有关如何解决这个问题的更多想法?

使用_vscprintf而不是尝试,它只返回所需的数(不包括终止空)

+0

太感谢你了:),我从来不知道这样的功能存在 – killercode 2011-01-19 15:45:15