簡體   English   中英

數組指向的結構? [C]

[英]Struct pointed by an array? [C]

我正在嘗試制作一個使用由30個數組指向的結構的程序。這意味着,將只有30個名為Person的可用結構。 將此視為活動行,該活動行只能包含30個活動人員。 使用的功能有:

#include <stdio.h>
#include <stdlib.h>

struct Person
{
    char name[40];
    char firstname[40];
    int CIN[12];
};

typedef struct Person *Activity;

main()
{
    Activity act[30];
    return 0;
}

空缺(搜索“活動”行中是否有空位)。

插入(如果活動行中的位置為空,則插入新的人員)。

取款(從“活動”行中刪除一個人)。

這是結構和活動行的聲明:

CIN是法國的身份證號碼。

這些功能是:

vacant(Activity act, int index);
insertion(Activity act, int index);
withdrawal(Activity act);

index是空位置的編號,必須在插入時使用。

我的問題是:

  1. 我的聲明正確嗎?
  2. 如果; 考慮到聲明是正確的,數組的大小為30並且數組指向結構,這是否意味着我不需要動態分配內存?(使用malloc函數)。
  3. 考慮到我走在正確的道路上。 例如,訪問字段“名稱”是否像這樣:“ act.name”?
  1. 在聲明中,我找不到任何嚴重錯誤

  2. 由於它是指向結構的指針數組而不是結構的數組,因此在創建Person時只需使用malloc ,然后將返回的指針分配給數組的一個位置。 但是,您無需在其他時間使用malloc顯示代碼。

  3. 不,點是訪問結構的字段,例如,如果您具有Person peter則它將是peter.name 要從數組訪問結構,它應該是(*act[i]).nameact[i]->name

希望這對您有所幫助; 我正在為您學習,所以也許經驗豐富的用戶可以為您提供更多幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM