学习完数据结构,感觉对数据的存储有了一种新的认识,在动态内存的基础上,链表有了绝对的灵活性,可以给未知长度的数据处理带来方便,但是在不停的写代码的过程中,感觉到了深深的仇恨,每次要实现功能,几乎源代码都有改动,也就是说每个使用链表的方法几乎都不一样,这就对自己编写的链表、队列、和栈的函数维护成本增加,甚至N天以后不知道每个版本的实际差别。
这是我就在想是不是linux能够提供现成的链...
分类:
系统相关 时间:
2016-05-13 01:28:16
阅读次数:
1616
??
#include
using namespace std;
class A
{
public:
A(){cout<<"A";}
~A(){cout<<"~A";}
};
class B
{
A *p;
public:
B(){cout<<"B";
p=new A();
}
~B()
{
cout...
分类:
其他好文 时间:
2016-05-12 20:42:51
阅读次数:
160
??
/* 02. *Copyright (c) 2016,烟台大学计算机学院 03. *All rights reserved. 04. *文件名称:cpp 05. *作 者:孙亚茹 06. *完成日期:2016年5月10日 07. *版 本 号:v1.0 09. *问题描述:输入职工工资并逐个输出。其中职工人数不定,通过动态内存分配空间,讲工资声明为指针类型的成员,分配正好内...
分类:
其他好文 时间:
2016-05-12 17:44:48
阅读次数:
150
单链表的建立有了动态内存分配的基础,要实现链表就不难了。链表由一系列不必在内存中相连的结构组成。每一个结构均含有表元素和指向包含该元素后继元的结构指针。我们称之为next指针。最后一个单元的next指针指向NULL;该值由C定义并且不能与其它指针混淆。ANSIC规定NULL为零..
分类:
编程语言 时间:
2016-05-10 18:59:26
阅读次数:
165
1指针的概念分解指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:1.指针的类型2.指针所指向的类型3.指针的值或者叫指针所指向的内存区4.还有指针本身所占据的内存区学习C语言动态内存分配对于指针,正确的分配..
分类:
编程语言 时间:
2016-05-10 15:22:26
阅读次数:
243
linux 内存管理基于分段、分页把逻辑地址转换为物理地址,同时有些RAM永久的分配给了内核使用用来存放内核代码以及静态数据。其余的RAM为动态内存。linux中采用了很多有效的管理方法,包括页表管理、高端内存(临时映射区、固定映射区、永久映射区、非连续内存区)管理、为减小外部碎片的伙伴系统、为减小内部碎片的slab机制、伙伴系统未建立之前的页面分配制度以及紧急内存管理等等。。
...
分类:
其他好文 时间:
2016-05-07 10:35:11
阅读次数:
268
静态成员函数 声明时包含关键字static。注意以下两点: 1、使用静态成员函数时不能通过对象或者this指针来调用,只能使用类名+作用域解析符来调用。 2、静态成员函数只能使用静态成员。 new操作符 在使用 之后,new操作符可以在分配内存时指定内存位置。例如: delete ptr1调用了类的 ...
分类:
编程语言 时间:
2016-05-06 20:15:31
阅读次数:
129
内存管理
RAM的某些部分永久的分配给内核,并用来存放内核代码以及静态内核数据结构。
RAM的其余部分称为动态内存(dynamic memory),这不仅是进程所需的宝贵资源,也是内核本身所需的宝贵资源。实际上,整个系统的性能取决于如何有效地管理动态内存。
因此,现在所有多任务操作系统都在尽力优化对动态内存的使用,也就是说,尽可能做到当需要时分配,不需要时释放。
...
分类:
系统相关 时间:
2016-05-06 16:10:01
阅读次数:
228
进程地址空间
内核中的函数以相当直截了当的方式获得动态内存:
1.__get_free_pages()和alloc_pages()从分区页框分配器中获得页框。
2.kmem_cache_alloc()和kmalloc()使用slab分配器为专门或通用对象分配快。
3.vmalloc()和vmalloc_32()获得一块非连续的内存区。...
分类:
系统相关 时间:
2016-05-06 15:04:58
阅读次数:
267
1.new、delete、malloc、free关系
delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之...
分类:
编程语言 时间:
2016-05-06 14:53:23
阅读次数:
163