我的功能有这个原型:
char[][100] toArray(char document[]);
g ++ on cygwin返回此错误:
Unable to resolve identifier toArray
如何返回C-Strings数组?
答案 0 :(得分:6)
用C ++返回数组是不可能的。您可以做的最接近的是返回一个指向动态分配的字符串块的指针。
这是合法代码
typedef char str100[100];
str100* toArray(char* document)
{
str100 *block = new str100[20];
return block;
}
typedef让它更容易理解。如果您不相信我,那么没有typedef的相同代码
char (*toArray(char* document))[100]
{
char (*block)[100] = new char[20][100];
return block;
}
这是为了吓唬你。
但是虽然这段代码是合法的,但它也是垃圾。您应该使用std::vector<std::string>
。动态分配内存很难,比使用为你工作的类要困难得多。