编辑:我很新的c + +和编程整体。结构指针数组
我应该做一个程序,我使用stucts和一系列的结构。
安理会<>安全理事会
的会员我的任务是用“UML聚合”的概念来创建一个程序,我使用结构和结构数组。 (我希望你明白我想说什么)
由于安全委员会的成员是安全委员会的成员,而不是相反,安全委员会的结构必须有一个安全委员会的结构成员。(多多包涵)
//example
struct Member_sc{
char * name;
int age;
};
struct Security_council{
Member_sc members[10];
};
现在,我已经创建了这个程序,一切完美(根据我的老师),但现在,她告诉我,创建精确的复制,但不是的“成员”数组我必须使用指向Member_sc结构体的指针数组。由于我没有完全弄清楚指针是如何工作的,所以我遇到了一些问题。
如果需要,我可以将代码发布到原始程序,但它包含4个文件(主文件头,头文件和一些函数文件),尝试在此处发布会很麻烦。
这里是原型(全部在一个文件中,现在)你输入后
#include <iostream>
using namespace std;
struct member_sc{
string name;
};
struct security_council{
member_sc *point;
security_council **search; // ignore this for now
int n;
security_council():n(0){}
};
void in_mem(member_sc &x){
getline(cin,x.name);
}
void out_mem(member_sc &x){
cout<<x.name<<endl;
}
void in_SC(security_council &q, member_sc &x){
int num; //number of members
cin>>num;
for(int i=0; i<num; ++i){
in_mem(x);
q.point[q.n]=x;
q.n++;
}
}
void out_SC(security_council &q,member_sc &x){
for(int i=0; i<q.n; ++i){
out_mem(q.point[i]);
}
}
int main(){
member_sc y;
security_council x;
in_mem(y); // works
out_mem(y); // works
in_SC(x,y); // crashes after i input the number of members i want
out_SC(x,y); //
system("pause");
return 0;
}
程序崩溃要让成员在安理会的数量。 我的思维方式是对的吗?或者我应该使用动态内存分配?
除此之外(我的老师给了我一个额外的任务)使用指针创建一个搜索函数。我认为指针指针可能对此有好处,但我不确定。
任何帮助或建议将不胜感激。 (我觉得生病弄清楚搜索啄一次我想出的指针结构是如何工作的)
你知道'vector'吗? – deviantfan
你永远不会初始化'point'成员引用的内存,然后在语句'q.point [q.n] = x;'中尝试使用它。 –
@deviantfan对不起,但没有 –