我创建了以下结构:
typedef struct {
char name[15];
int ID;
} Employee;
typedef Employee Item;
typedef struct {
Item items[5];
int size;
} List;
我正在使用这个函数调用来查看列表中存储的内容:
void Peek (int position, List *L, Item *X);
该函数应在 [位置] 获取列表 [L] 中的项目并将其地址复制到 [X]。我有这个 peek 功能:
void Peek (int position, List *L, Item *X) {
Item *B;
B = malloc(sizeof(L->items[position]));
X = B;
}
这会将 X 分配给与 B 相同的位置,但是我认为这会导致内存泄漏,更重要的是,如果我尝试从这个函数中调用我的 main 中的项目 X 的 ID:
int EmployeeID (Employee X) {
return(X.ID);
}
我返回 32665 或类似的东西。从 L 到 X 获取数据的另一种方法是什么?