gpt4 book ai didi

c++ - 如何在 va_start 中使用字符串?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:32:46 27 4
gpt4 key购买 nike

出于某种原因,我无法正常工作:

    void examplefunctionname(string str, ...){
...
va_start(ap, str.c_str());

我也没有得到这个工作:

    void examplefunctionname(string str, ...){
...
int len = str.length();
char *strlol = new char[len+1];
for(int i = 0; i < len; i++){
strlol[i] = str[i];
}
strlol[len] = 0;
va_start(ap, strlol);

但这确实:

    void examplefunctionname(const char *str, ...){
...
va_start(ap, str);

有人可以告诉我如何使用字符串代替 const char * 吗?

当我调用 examplefunctionname("%d %d %d", 1337, 1337, 1337) 时它输出随机数

最佳答案

来自文档:

va_start(va_list ap, last) ... The parameter last is the name of the last parameter before the variable argument list, i.e., the last parameter of which the calling function knows the type.

您在您的工作示例中已正确完成此操作:va_start(ap, str),并且 str 是最后一个已知参数。但在其他两个示例中,您将奇怪的东西传递给 va_start

关于c++ - 如何在 va_start 中使用字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4648597/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com