数组指向的结构? [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为空位编号,插入时必须使用
我的问题是:
- 我的声明是否正确?
- 如果;考虑到声明是正确的,数组的大小是
30和数组指向结构,是不是代表我不需要
动态分配内存?(使用malloc函数)。
- 考虑到我走在正确的道路上。是否访问字段 "name"
例子是这样的:"act.name"?
在声明中我找不到任何严重错误
因为它是指向结构的指针数组而不是结构数组,所以你只需要在创建一个Person时使用malloc
然后将返回的指针分配给一个位置的阵列。但是您不需要在任何其他时间使用显示的代码 malloc
。
不,点是访问结构的字段,例如,如果您有 Person peter
,它将是 peter.name
。要从数组访问结构,它应该是 (*act[i]).name
或 act[i]->name
.
希望对您有所帮助;我正在像你一样学习,所以也许更有经验的用户可以帮助你更多。
我正在尝试制作一个程序,该程序使用由 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为空位编号,插入时必须使用
我的问题是:
- 我的声明是否正确?
- 如果;考虑到声明是正确的,数组的大小是 30和数组指向结构,是不是代表我不需要 动态分配内存?(使用malloc函数)。
- 考虑到我走在正确的道路上。是否访问字段 "name" 例子是这样的:"act.name"?
在声明中我找不到任何严重错误
因为它是指向结构的指针数组而不是结构数组,所以你只需要在创建一个Person时使用
malloc
然后将返回的指针分配给一个位置的阵列。但是您不需要在任何其他时间使用显示的代码malloc
。不,点是访问结构的字段,例如,如果您有
Person peter
,它将是peter.name
。要从数组访问结构,它应该是(*act[i]).name
或act[i]->name
.
希望对您有所帮助;我正在像你一样学习,所以也许更有经验的用户可以帮助你更多。