在结构内部分配给参考

时间:2019-04-18 15:58:23

标签: c++98

我创建了一个引用了向量的结构,但是在创建一个结构数组后却遇到了分配问题。

这是我的结构:

struct name{
        std::vector<Student> &A;
        int a;
        int b;
};

在我的主语言中,我创建了一个类类型为Student的向量,并且已为该向量分配了值,我将其称为StudentVector。我正在尝试声明一个结构名称数组,其中包含对我的向量StudentVector的引用:

void main(){

std::vector <Student> StudentVector;

....

....

....

name data[5];

for (int i=0;i<5;i++){


           data[i].A = StudentVector;

}

这样做时,它会编译,但是在运行代码时出现分段错误。

预先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

它不应该编译,因为没有办法初始化引用'A'。如果您确实需要这样做,请用指针替换引用:

struct name {
    std::vector<Student> *A;
    int a;
    int b;
};

std::vector<Student> StudentVector;

for (int i = 0; i < 5; i++) {
    data[i].A = &StudentVector;
}

但最好完全避免。