【发布时间】:2015-01-11 14:28:54
【问题描述】:
我基本上有一个动态 char 数组来存储名称并将其声明为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 个名称。
【问题讨论】:
-
使用 std::string 和 std::vector 或 std::array。
-
为什么在 C++ 程序中使用 C 风格的字符串和内存分配?使用 std::string 和 std::vector 并为自己省去很多麻烦。
-
你有存储名字的地方的地址,你必须取消引用它才能得到名字
-
如果你是 C++ 新手,我建议你查看The Definitive C++ Book Guide and List,以及a good reference site。
-
Sorry, I am new to C++ and I am willing to learn正如其他人所指出的,这是了解std::vector和std::string的绝佳时机。请为您自己的理智使用它们。