char *连接不正常

时间:2017-07-25 10:42:46

标签: c++

我最近遇到了一个问题,直到现在还没能找到解决方案。我有一个函数应该像C#中的String.Concat一样:

char* va(char* Text, ...)
{
    char Buffer[1000];
    va_list parameters;
    va_start(parameters, Text);
    vsprintf(Buffer, Text, parameters);
    return Buffer;
}

但出于某种原因,如果我这样做:

for (int i = 0; i < 12; i++)
    AddOption(va("Option %i", i));

菜单字段全部显示“选项11”,因此文本似乎被覆盖。我尝试在项目设置中禁用“String Pooling”,但它没有改变任何东西!非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

你应该使用

char *Buffer = new char[1000]

对于函数char* va()的返回,需要一个堆变量