我基本上有一个存储名称的动态字符数组,并将其声明为char **names
。
我有一个名为namesnumber
的变量,用于设置names
数组的大小。
例如,
namesnumbers = 5
names = new char*[namesnumbers];
for (int i=0; i<namesnumbers; i++)
{
names[i] = new char[65];
strcpy(names[i], actualName);
}
names = {Mike, Sam, Mark, Bill, George}
这是我的返回方法,但它只返回一个内存地址而不是实际的名称
const char** getNames()
{
return names;
}
我希望我的getNames()
方法返回5个名字。
答案 0 :(得分:2)
// namesnumbers = 5
names = new char*[namesnumbers];
for (int i=0; i<namesnumbers; i++)
{
names[i] = new char[65];
strcpy(names[i], actualName);
}
// names = {Mike, Sam, Mark, Bill, George}
使用std库进行等效初始化:
与实例化分开:
std::vector<std::string> names;
for(const auto& n: actualNames) // actualNames assumed to be an array
names.push_back(n);
实例化:
std::vector<std::string> names = { "Mike", "Sam", "Mark", "Bill", "George" };
返回五个名字:
const std::vector<std::string>& getNames()
{
return names;
}