我最近遇到了一个问题,直到现在还没能找到解决方案。我有一个函数应该像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”,但它没有改变任何东西!非常感谢任何帮助!
答案 0 :(得分:0)
你应该使用
char *Buffer = new char[1000]
对于函数char* va()
的返回,需要一个堆变量