类似类的形式

  • 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相关推荐

  1. C#利用lambda在函数中创建内部函数

    有使用过JS的朋友,相信都知道function.JS中的function是可以在里面在定义一个作为内部使用的.有时为了控制作用域,或者这种小函数只在这个函数体内会使用,所以就不希望在外部在作额外的定义 ...

  2. 在c语言中,函数中的自动变量可以赋初值,每调用一次,赋一次初值,计算机二级考试 程序设计基础试题及答案三...

    <程序设计基础>考试试卷三 1. 判断下面标识符中哪个是C语言中合法的用户定义标识符: A. a-b B. #abd C. typedef D. _max 2. -b?在内存中占个字节,& ...

  3. c语言实验至少包括四个函数中,C语言实验报告《函数》

    学号:__________    姓名:__________    班级:__________    日期:__________ 指导教师:__________    成绩:__________ 实验 ...

  4. java用if语句调用方法_J2SE中main函数中的if语句想要调用另一个类的方法怎么能实现?...

    日常生活中,要完成一件复杂的功能,我们总是习惯把"大功能"分解为多个"小功能"以实现.在C++程序的世界里,"功能"可称呼为"函数 ...

  5. ACMNO.41C语言-数字调序 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数

    题目描述 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图. 写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数. 输入 输入数据的个数n n个整数 移动的位置m ...

  6. ACMNO.27 Python的两行代码解决 C语言-字符逆序 写一函数。使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串。 输入 一行字符 输出 逆序后的字符串

    题目描述 写一函数,使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串. 输入 一行字符 输出 逆序后的字符串 样例输入 123456abcdef 样例输出 fedcba654321 来源 ...

  7. ACMNO.26 C语言-字符统计2 编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。 只要结果,别输出什么提示信息。

    题目描述 编写一函数,由实参传来一个字符串,统计此字符串中字母.数字.空格和其它字符的个数, 在主函数中输入字符串以及输出上述结果. 只要结果,别输出什么提示信息. 输入 一行字符串 输出 统计数据, ...

  8. es6箭头函数中this

    普通函数: $scope.$on('$stateChangeSuccess',function(){this.list = this.getList();}); 箭头函数: $scope.$on('$ ...

  9. C++ main函数中参数argc和argv

    argc 是 argument count的缩写,表示传入main函数的参数个数: argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0 ...

最新文章

  1. 内核编译(make)
  2. C++---显示实例化与隐式实例化,显示调用与隐式调用
  3. phoneGap实际开发中的某些雷区
  4. eclipse上的maven,添加依赖后无法自动下载相应的jar包
  5. 实现二级菜单的滑动出现与消失(解决dispaly与transition冲突问题)
  6. 第26讲 js函数调用过程内存分析 js函数细节
  7. Access数据库迁移到MS SQL Server数据库
  8. 在小程序中如何使用svg图标
  9. Java内存泄漏检测工具 JRockit Memory Leak Detector
  10. 0x0000004e蓝屏代码解决教程
  11. JAVA :一张纸厚0.5mm //0.0005m,折叠多少次,厚度会超过珠穆朗玛峰?(8848.43m)
  12. python中转义字符与格式化字符的混合使用
  13. omf多路径 oracle_Oracle OMF 功能详解
  14. 微盟电子商城网络交易系统——Day01【项目介绍、项目环境搭建、快速搭建后台管理系统】
  15. _SaveLog.dpr立即备份晓亮的电脑操作记录热键(快捷键) F11由于原来的 AutoIt 杀毒软件总是误报...
  16. Html Table 样式
  17. 12.4.1 索引顺序存取方法文件 / ISAM文件
  18. freemind 要下载java_FreeMind下载、安装及使用介绍
  19. 华为nqa和bfd实际应用配置案例
  20. 删除iphone4通讯录里的所有联系人

热门文章

  1. Android热修复升级探索——代码修复冷启动方案
  2. bzoj-1026 windy数
  3. mv命令(移动和重命名)
  4. nagios自定义监控API插件
  5. iOS开发之窥探UICollectionViewController(四) --一款功能强大的自定义瀑布流
  6. UITableView性能提升和优化(第3章) 之一
  7. 企业移动办公及手机办公方案
  8. xp 不能上传邮件附件的解决办法
  9. 23hibernate_pessimistic_locking
  10. NEO智能合约反编译工具