我有一个C编程问题.
我想知道两者之间的差异,以及一个对其他人有用的地方吗?
假设我有一个名为employee的结构,如下所示:
struct emp{
char first_name[10];
char last_name[10];
char key[10];
};
Run Code Online (Sandbox Code Playgroud)
现在,我想存储员工记录表,然后我应该使用哪种方法:
struct emp e1[100]; // Orstruct emp * e1[100];我知道这两个不一样,但是想知道第二个声明会引起兴趣并且更有利于使用的用例.
有人可以澄清吗?
第二个是指向 struct emp 的指针数组,这意味着你必须在堆上分配每个元素.优点是你只需为你实际拥有的emp数量分配足够的内存,但缺点是你必须管理每个emp的生命周期.
在第一种形式中,100个emps存储在数组本身中,因此它们不需要单独分配.但是这个数组占据了所有100个emps的足够空间,即使你只有10个emps.