结构由数组指向? [C]

时间:2016-01-09 20:06:45

标签: c arrays pointers struct allocation

我正在尝试创建一个使用由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 个答案:

答案 0 :(得分:4)

  1. 在声明中我找不到任何可怕的错误

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

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

  4. 希望这会对你有所帮助;我正在学习,所以也许更有经验的用户可以为您提供更多帮助。