在c ++中返回struct数组

时间:2015-04-22 07:10:46

标签: c++ arrays struct

我正在尝试在我的班级中返回一个结构数组,但我一直收到错误

error C2556: 'cellValue *LCS::LcsLength(std::string,std::string)' : overloaded function differs only by return type from 'cellValue LCS::LcsLength(std::string,std::string)'

当我返回.cpp文件时

我的班级声明是:

enum arrow {UP, LEFT, DIAGONAL};

struct cellValue
{
    int stringLenght;
    arrow direction;
};

class LCS
{
public:
    cellValue LcsLength (string, string);
};

当我尝试返回我的功能时,我有:

cellValue LCS::LcsLength (string X, string Y)
{
    cellValue table[1024][1024];

    return table;
}

1 个答案:

答案 0 :(得分:8)

您的LcsLength函数存在两个主要问题:您的返回类型错误,并且您有一个悬空指针。

您将LcsLength声明为返回cellValue个对象,然后尝试返回cellValue[1024][1024]。这就是你得到编译器错误的原因。

无论返回类型如何,您正在执行的操作都不起作用,因为table将在函数退出后立即销毁。使用std::vectorstd::map会更好,具体取决于该表的用途。