为了让实验结果有说服力,用一个benchmark(伪)是不够的。
4个差不多,也就意味着我要再找3个。
要求是: 1.较为简短和符合较常见语法 2.程序中较多malloc(虽然可以手动调整)
首先就要搞清楚malloc大家一般是什么时候用,总结我看论坛和帖子里面写的,大概是这样
要去分配一块不太清楚大小的内存,比如结构体,动态数组(数组无法事先确定大小),链表节点内存的动态分配和释放等 (当然,你去分配一块已知大小的内存也是可以的)
当定义一个新指针,并未指向别的内存区域,而你后面需要对他进行读写访问,则一定要malloc
抠破脑门在想有什么代表性的程序,连续想到了三本书,一个是ACM竞赛入门,一个是数据结构,一本是算法分析与设计
脑海中涌现出了诸如对链表、二叉树、图的增删改查的一些基本操作
初步查了一下:链表最坑的地方在于next指针,node都是malloc一串的,名字一样但是实际区域不一样。
当静态代码里出现current->next指针时,按照普通的分析方法并不能get到这个next到底指向的是哪块的内存
二叉树比较坑的是遍历方式很多都是用递归的来写的,非递归也是设计到栈啊、移动啊,不知道指向哪的问题
图有两种存储结构,邻接表和邻接矩阵,邻接表当然就是一样的涉及到next指针咯
感觉有些麻烦,这里想到算法设计里的一些
背包?动态规划?