遗憾的是,两个人不能在一起,却偏偏相遇。。。
---- 网易云热评
一、字典内容就三个词
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);
六、运行结果
欢迎关注公众号:顺便编点程
标签:tmp,content,遍历,QT,--,字母,char,dict,strlen From: https://blog.51cto.com/u_15288375/5970872