由于这个奇怪的编译错误,我在编译程序时遇到了问题...这是代码的具体部分:

 // the error occures at "char _adr[][]" in the constructor parameters

Addresses(string _ime, string _egn, char *_adres, char _adr[][], int adrLen):Person(_ime, _egn, _adres){
    addressLength = 0;
    for(; addressLength < adrLen; addressLength++) {
        if(addressLength >= 5){
            break;
        }
        adr[addressLength] = _adr[addressLength];
    }
}

最佳答案

在C/C++中,您不能像char _adr[][]那样定义具有两个未知大小的二维数组。数组声明必须定义所有(但第一个)大小。尝试定义至少一个大小(例如:char _adr[][10]),或者,由于您使用的是C++,请改用 std::vector

只是为了使您注意到它:您还在使用adr而不在函数范围内声明它。

07-28 11:14