我無法找到任何解決我的問題,我的大腦幾乎是爆炸......結構指針到結構陣列
我已經定義了一個結構,並創建聯繫人,就像一個ADRESS書的功能。 我在問有多少聯繫人想創建,這完全正常工作。
所以我最終得到了一個指向我的指針的聯繫數組。 在我的菜單中,我可以選擇創建聯繫人,搜索和刪除聯繫人。
目前我正在尋找聯繫人。 因此,我開始搜索功能,並把它指向我的結構。
我不知道如何將這個指針解除引用到一個結構數組中。 這可能只是一個愚蠢的小小錯誤,但我找不到它。
所以我第一次試圖找出我創建了多少聯繫人。 當我嘗試打印創建的聯繫人的這樣的數字:
void searchContact(struct Contact* ContactArray){
int howManyContacts=sizeof(ContactArray)/sizeof(struct Contact);
printf("%d",howManyContacts);
}
我總是得到0打印出來。 如果我創建1,2,3 ....聯繫
我希望你們有人能幫助我沒關係......它的駕駛我瘋狂
順便說一句,我使用Eclipse使用GCC編譯器
'ContactArray'是一個指針,所以它的規模將始終是相同的。 – juanchopanza
'sizeof'技巧只能與正確的數組一起使用(即聲明爲'struct Contact contacts [X];'),而不是指針,因爲指針的sizeof'給你指針的大小,而不是它指向。每個需要知道數組大小的函數都需要有一個參數來指示數組中的條目數量。 –
你可以在你的結構中有一個「count」字段並將其用於此目的 – Gopi