繁体   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