一、字典内容就三个词
a:第一个字母
b:第二个字母
C:第三个字母
#define MAX 3
二、定义一个词的机构体
struct dict { char *key; char* content; };
三、存储三个词
void get_dict(struct dict **tmp) { //在堆区分配MAX个结构体空间 *tmp = (struct dict*)malloc(MAX * sizeof(struct dict)); if (*tmp==NULL) { return; } //设置结构体内容, //第0个结构体,放第0个单词 (*tmp)[0].key = (char*)malloc(strlen("a") + 1); strcpy_s((*tmp)[0].key,strlen("a")+1, "a"); (*tmp)[0].content = (char*)malloc(strlen("第一个字母") + 1); strcpy_s((*tmp)[0].content, strlen("第一个字母") + 1, "第一个字母"); //第1个结构体,放第1个单词 (*tmp+1)->key = (char*)malloc(strlen("b") + 1); strcpy_s((*tmp + 1)->key, strlen("b") + 1, "b"); (*(*tmp+1)).content = (char*)malloc(strlen("第二个字母") + 1); strcpy_s((*(*tmp + 1)).content, strlen("第二个字母") + 1, "第二个字母"); //第2个结构体,放第2个单词 (*tmp + 2)->key = (char*)malloc(strlen("c") + 1); strcpy_s((*tmp + 2)->key, strlen("c") + 1, "c"); (*(*tmp + 2)).content = (char*)malloc(strlen("第三个字母") + 1); strcpy_s((*(*tmp + 2)).content, strlen("第三个字母") + 1, "第三个字母"); }
四、遍历内容
void print_dict(struct dict *tmp) { int i = 0; for (i=0;i<MAX;i++) { printf("[%s]%s\n", tmp[i].key, tmp[i].content); } }
五、调用
struct dict* p = NULL; //1、给p分配空间,分配完空间后,需要设置内容 get_dict(&p);//通过函数分配空间 //2、遍历字典 print_dict(p);
六、运行结果