我创建了一个引用了向量的结构,但是在创建一个结构数组后却遇到了分配问题。
这是我的结构:
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;
}
这样做时,它会编译,但是在运行代码时出现分段错误。
预先感谢您的帮助!
答案 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;
}
但最好完全避免。