数组指向的结构? [C]

Struct pointed by an array? [C]

我正在尝试制作一个程序,该程序使用由 30 个数组指向的结构。这意味着,将只有 30 个名为 Person 的可用结构。将其视为 Activity 行,Activity 行只能有 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;
}

空(搜索Activity行是否有空位)

插入(如果 Activity 行中的某个位置为空,则插入新人物)。

撤回(从 Activity 行中删除一个人)。

这是结构和 Activity 行的声明:

CIN 是法语,表示国家卡身份。

函数是:

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

index为空位编号,插入时必须使用

我的问题是:

  1. 我的声明是否正确?
  2. 如果;考虑到声明是正确的,数组的大小是 30和数组指向结构,是不是代表我不需要 动态分配内存?(使用malloc函数)。
  3. 考虑到我走在正确的道路上。是否访问字段 "name" 例子是这样的:"act.name"?
  1. 在声明中我找不到任何严重错误

  2. 因为它是指向结构的指针数组而不是结构数组,所以你只需要在创建一个Person时使用malloc然后将返回的指针分配给一个位置的阵列。但是您不需要在任何其他时间使用显示的代码 malloc

  3. 不,点是访问结构的字段,例如,如果您有 Person peter,它将是 peter.name。要从数组访问结构,它应该是 (*act[i]).nameact[i]->name.

希望对您有所帮助;我正在像你一样学习,所以也许更有经验的用户可以帮助你更多。