編輯:我很新的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對不起,但沒有 –