字符* 串联无法正常工作

char* concatenation not working properly

本文关键字:常工作 工作 字符      更新时间:2023-10-16

我最近遇到了一个问题,直到现在我都找不到解决方案。我有一个函数,它应该像 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",因此文本似乎正在覆盖。我尝试在项目设置中禁用"字符串池",但它没有改变任何东西!任何帮助将不胜感激!

你应该使用

char *Buffer = new char[1000]

为了返回函数char* va()需要一个堆变量