其实,用链表与文件写学生管理系统内容可分为两大模块: 模块一:一个完整的创建、遍历、添加、删除、修改的链表; 模块二:读取/写入数据到文件。 模块一 一个链表,主要是malloc的正确使用。 定义一个带有结构指针的结构体,用malloc()动态开辟一个该结构体大小的内存用来作为节点,储存多个平行数据 ...
分类:
其他好文 时间:
2017-01-05 07:51:43
阅读次数:
359
基本数据结构之-单链表的链式存储 链表是一种插和删除元素很便捷的数据结构,原因是它存储的数据在内存中不连续,可以根据需要自己动态开辟。 和数组比较起来主要的缺点就是不能随机访问,如果是单链表,那么要访问一个数据,必须从头开始遍历一次! 对于基本数据结构围绕增删查改等操作,单链表的改可以通过删和增的结 ...
分类:
其他好文 时间:
2016-09-17 21:44:25
阅读次数:
131
内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。(其实说白了就是该内存空间使用完毕之后未回收)即所谓内存泄漏。 内存泄漏形象的比喻是“操作系统可提供给所有进程的存储空间正在被某个进程榨干”,最终结果是程序运行时间越长,占用存 ...
分类:
其他好文 时间:
2016-08-11 22:27:15
阅读次数:
136
linklist* L = (linklist*)malloc(sizeof(lnode)); malloc是动态开辟内存,函数返回为 void 型指针(指向开辟的内存空间) (linklist*):开辟内存的类型,就是将原来 malloc 返回的 void 型指针强制定义为 linklist 型, ...
分类:
其他好文 时间:
2016-07-11 00:55:10
阅读次数:
118
百度百科:内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。(其实说白了就是该内存空间使用完毕之后未回收)即所谓内存泄漏。内存泄漏形象的比喻是“操作系统可提供给所有进程的存储空间正在..
分类:
编程语言 时间:
2016-04-27 19:00:53
阅读次数:
832
智能指针是能够智能化的动态开辟空间和内存释放。C++中引入智能指针,是防止我们在动态开辟空间是,由于疏忽大意,导致内存的释放出现问题,最终致使内存泄漏。智能指针的基本特点:(1)智能指针管理的是一块内存的释放。(2)智能指针是一个类,有类似指针的功能。AutoPtr:#..
分类:
其他好文 时间:
2016-04-25 15:14:59
阅读次数:
169
我们看下面这个迷宫----方阵(也可以是矩阵):迷宫入口是坐标(2,0)位置,出口是(9,3)。我们假定0代表通路,1代表不通。现在需要找到哪一条路是通路。我们的思想是借助栈,“回溯法”。回溯是什么意思呢???先从起点出发,检查它的上下左右是否是通路(即是否有为数字0..
分类:
编程语言 时间:
2016-04-12 16:04:55
阅读次数:
546
讲这个之前,先来看一个例子:voidTest1()
{
int*p1=newint(2);
//...
try
{
DoSomeThing();
}
catch(...)
{
deletep1;
throw;
}
//...
deletep1;
}这个例子,是通过C++异常处理机制,来管理动态开辟出来的内存,这是可以做到的。那如果我们以后new出来一块内存,都要这么做,..
分类:
编程语言 时间:
2016-04-07 01:42:40
阅读次数:
197
首先了解shared_ptr毫无疑问的是智能指针的一种,智能指针是为了解决在大型代码里无法不好控制指针的问题,例如:在类里面如果出现了动态开辟出来的空间,有一个指针指向这块空间,如果在相应的作用范围之内没有将其delete掉会造成内存的泄漏,所以这样就必须手动的对这一块空..
分类:
其他好文 时间:
2016-04-04 21:16:42
阅读次数:
332
我们知道c++标准库中定义了智能指针auto_ptr,但是我们很少用它,因为虽然它能够自动回收动态开辟的内存,不需要程序员自己去维护动态开辟的内存,但是当用它去赋值或者是拷贝构造时有一个管理权转移的过程,这样我们就不能很方便的使用auto_ptr。下面是简单的auto_ptr的实现,..
分类:
编程语言 时间:
2016-03-30 18:04:49
阅读次数:
245