我真的坚持这个。ex17 应该通过提供一个简单的数据库来教我堆和堆栈内存分配(我的问题是具体的,但我会把它留在那里以防万一您需要完整的代码)。关于数据库某些设计决策的目的是什么没有太多解释,这就是我寻求帮助的原因。
1)必要性或只是设计方便(约定)?
struct Address {
int id;
int set;
char name[MAX_DATA];
char email[MAX_DATA];
};
struct Database {
struct Address rows[MAX_ROWS];
};
struct Connection {
FILE *file;
struct Database *db;
};
我不确定为什么会有三个结构。在代码中还有类似的表达式(希望您理解变量的名称)conn->db->rows[i]
。我的问题是这三个是必要的吗?我的意思是,为什么我们需要一个连接结构?为什么不直接创建一个独立FILE *file
的东西并完全避免使用struct Database *db
指针呢?
2)可能这会对我第一个有帮助。在Extra credit
练习的 aka(自己制作)部分,有一个任务如下:Try reworking the program to use a single global for the database connection. How does this now version of the program compare to the other one?
那么这只是要求我重新设计管理此数据库的“3 结构方式”吗?