【408】C函数中的ADT
类似类的形式
- boardADT.h:所有的宏、声明等部分写在这里
- boardADT.c:只需要 #inclue "boardADT.h",不需要 include 其他系统头文件,然后在此建立 struct,类似属性的内容,建立各种函数,类似方法的内容
- puzzle.c:只需要 #inclue "boardADT.h",main 函数在此,主要调用 ADT 中的属性和方法
在 struct 里面添加数组指针,所以只是存储地址
注意:struct 在ADT里面建立,不在 head 文件里面
另外,主函数 所在的文件不能调用 struct 里面的内容
即在主函数中不能出现 -> 的字样。。
struct board_struct {long* body;long length;long side; //length of sidelong size;
};typedef struct board_struct *board;
在初始化的时候,首先为 bo 分配空间,包括 地址+long+long+long
然后再为 数组 bo->body 分配空间,根据具体数组大小来分配
他们的空间是分开的,因此最后需要分别释放
board init_board(long size_arg) {board bo;bo = malloc(sizeof(struct board_struct));if (bo == NULL){fprintf(stderr, "Memory allocation error.\n");exit(EXIT_FAILURE);}bo->body = malloc(sizeof(long)*size_arg);if (bo->body == NULL){fprintf(stderr, "Memory allocation error.\n");exit(EXIT_FAILURE);}bo->length = 0;bo->side = 0;bo->size = size_arg;return bo;
}
最后为board->body释放空间的时候,需要建立函数释放,因为board->body在主函数中无法调用。。
转载于:https://www.cnblogs.com/alex-bn-lee/p/11069203.html
【408】C函数中的ADT相关推荐
- C#利用lambda在函数中创建内部函数
有使用过JS的朋友,相信都知道function.JS中的function是可以在里面在定义一个作为内部使用的.有时为了控制作用域,或者这种小函数只在这个函数体内会使用,所以就不希望在外部在作额外的定义 ...
- 在c语言中,函数中的自动变量可以赋初值,每调用一次,赋一次初值,计算机二级考试 程序设计基础试题及答案三...
<程序设计基础>考试试卷三 1. 判断下面标识符中哪个是C语言中合法的用户定义标识符: A. a-b B. #abd C. typedef D. _max 2. -b?在内存中占个字节,& ...
- c语言实验至少包括四个函数中,C语言实验报告《函数》
学号:__________ 姓名:__________ 班级:__________ 日期:__________ 指导教师:__________ 成绩:__________ 实验 ...
- java用if语句调用方法_J2SE中main函数中的if语句想要调用另一个类的方法怎么能实现?...
日常生活中,要完成一件复杂的功能,我们总是习惯把"大功能"分解为多个"小功能"以实现.在C++程序的世界里,"功能"可称呼为"函数 ...
- ACMNO.41C语言-数字调序 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数
题目描述 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图. 写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数. 输入 输入数据的个数n n个整数 移动的位置m ...
- ACMNO.27 Python的两行代码解决 C语言-字符逆序 写一函数。使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串。 输入 一行字符 输出 逆序后的字符串
题目描述 写一函数,使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串. 输入 一行字符 输出 逆序后的字符串 样例输入 123456abcdef 样例输出 fedcba654321 来源 ...
- ACMNO.26 C语言-字符统计2 编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。 只要结果,别输出什么提示信息。
题目描述 编写一函数,由实参传来一个字符串,统计此字符串中字母.数字.空格和其它字符的个数, 在主函数中输入字符串以及输出上述结果. 只要结果,别输出什么提示信息. 输入 一行字符串 输出 统计数据, ...
- es6箭头函数中this
普通函数: $scope.$on('$stateChangeSuccess',function(){this.list = this.getList();}); 箭头函数: $scope.$on('$ ...
- C++ main函数中参数argc和argv
argc 是 argument count的缩写,表示传入main函数的参数个数: argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0 ...
最新文章
- 内核编译(make)
- C++---显示实例化与隐式实例化,显示调用与隐式调用
- phoneGap实际开发中的某些雷区
- eclipse上的maven,添加依赖后无法自动下载相应的jar包
- 实现二级菜单的滑动出现与消失(解决dispaly与transition冲突问题)
- 第26讲 js函数调用过程内存分析 js函数细节
- Access数据库迁移到MS SQL Server数据库
- 在小程序中如何使用svg图标
- Java内存泄漏检测工具 JRockit Memory Leak Detector
- 0x0000004e蓝屏代码解决教程
- JAVA :一张纸厚0.5mm //0.0005m,折叠多少次,厚度会超过珠穆朗玛峰?(8848.43m)
- python中转义字符与格式化字符的混合使用
- omf多路径 oracle_Oracle OMF 功能详解
- 微盟电子商城网络交易系统——Day01【项目介绍、项目环境搭建、快速搭建后台管理系统】
- _SaveLog.dpr立即备份晓亮的电脑操作记录热键(快捷键) F11由于原来的 AutoIt 杀毒软件总是误报...
- Html Table 样式
- 12.4.1 索引顺序存取方法文件 / ISAM文件
- freemind 要下载java_FreeMind下载、安装及使用介绍
- 华为nqa和bfd实际应用配置案例
- 删除iphone4通讯录里的所有联系人