课程回顾
2作业讲解
3 指针复习
(1) 返回栈区地址
(错
(错,p一直是空的,同时引起堆区空间没释放
04 指针复习_2

08_快译通案例:单词遍历
09_快译通案例:释放堆区空间
10_快译通案例:单词查询
#include
#include
#include
#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((*tmp)[0].key, “a”);
//放第0个单词的解析
(*(*tmp + 0)).content = (char *)malloc(strlen(“art.字母a”) + 1);
//第1个结构体
(*tmp)[1].key = (char *)malloc(strlen(“a.m.”) + 1);
strcpy((*tmp)[1].key, “a.m.”);
//放第1个单词的解析
(*(*tmp + 1)).content = (char *)malloc(strlen(“a啊实打解析实的字母a”) + 1);
//第1个结构体
(*tmp)[2].key = (char *)malloc(strlen(“abandon”) + 1);
strcpy((*tmp)[2].key, “abandon”);
//放第2个单词的解析
(*(*tmp + 2)).content = (char *)malloc(strlen(“抛弃、放弃”) + 1);
}
void print_dict(struct dict *tmp)
{
int i = 0;
for (i = 0; i < MAX; i++)
{
printf(“[%s]%sn”, tmp[i].key, tmp[i].content);
}
}
void free_dict(struct dict *tmp)
{
//先释放成员变量
int i = 0;
for (i = 0; i < MAX; i++)
{
if (tmp[i].key != NULL)
{
free(tmp[i].key);
tmp[i].key = NULL;
}
if (tmp[i].content != NULL)
{
free(tmp[i].content);
tmp[i].content = NULL;
}
}
//再释放结构体指针变量
free(tmp);
tmp = NULL;
}
int search_dict(struct dict *tmp, char *key, char *content)
{
int i = 0;
for (i = 0; i < MAX; i++)
{
if (strcmp(tmp[i].key, key) == 0)
{
strcpy(content, tmp[i].content);
return 1;
}
}
return 0;
}
int main(int argc, char const *argv[])
{
struct dict *p = NULL;
//1、给p分配空间,分配完空间后,需要设置内容
get_dict(&p);
//2、遍历单词
// print_dict(p);
//查询功能
char key[1024]; //单词
char content[1024]; //单词解析
while (1)
{
printf(“请输入需要查询单词”);
scanf(“%s”, key);
if (strcmp(key, “break”) == 0)
{
break;
}
//如果有返回真,没有返回假
int flag = search_dict(p, key, content);
if (flag == 0)
{
printf(“没有此单词: %sn”, key);
}
else
{
printf(“[%s]的解释为: %sn”, key, content);
}
}
//3、释放空间
free_dict(p);
return 0;
}
11_快译通案例:代码引导
12_快译通案例:代码编译运行
文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览114012 人正在系统学习中 相关资源:陈式太极拳教学软件+注册机1-专业指导文档类资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!