0

我的函数有这个原型:

char[][100] toArray(char document[]);

cygwin 上的 g++ 返回此错误:

Unable to resolve identifier toArray

如何返回一个 C 字符串数组?

4

1 回答 1

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>. 动态分配内存很难,比使用为您完成工作的类要困难得多。

于 2012-11-17T09:03:48.957 回答