我正在尝试移植asprintf()
到 Windows,因为它是 Linux 上的 GCC 库函数,并且在 Windows 上不存在。
我一直在计算 var args 的长度,所以我可以为它们分配内存。我尝试了两种方法:
将 var args 写入文件,然后获取函数的结果(写入的字节数 = var args 的长度)但这很愚蠢,因为用户将在他的应用程序目录中看到内部随机数据
使用
vsprintf()
NULL 作为第一个参数(要写入输出的变量)的函数,因此它返回 var args 的长度,但是这个失败,因为它仅适用于 XP,Windows 7 不允许写入 NULL 变量。
关于如何解决这个问题的更多想法?