`
frenchmay
  • 浏览: 232499 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

c++编程思想chapter12,简单的内存管理系统

阅读更多
#include <stddef.h>
#include <fstream.h>

ofstream out("framis.out");

class Framis
{
	char c[10];
	static unsigned char pool[];
	static unsigned char alloc_map[];
public:
	enum { PSIZE = 100 };
	Framis() { out << "framis()\n"; };
	~Framis() { out << "~framis()...\n"; };
	void * operator new (size_t);
	void operator delete(void *);
};

unsigned char Framis::pool[PSIZE * sizeof(Framis)];
unsigned char Framis::alloc_map[PSIZE] = { 0} ;

void * Framis::operator new(size_t sz)
{
	for(int i = 0; i < PSIZE; i++)
		if(!alloc_map[i])
		{
			out << "using block " << i << "...";
			alloc_map[i] = 1;
			return pool + (i * sizeof(Framis));
		}
	out << "out of memory" << endl;
	return 0;
}

void Framis::operator delete(void * m)
{
	if(!m)
		return;
	unsigned long block = (unsigned long)m
		- (unsigned long)pool;
	block /= sizeof(Framis);
	out << "freeing block " << endl;
	alloc_map[block] = 0;
}

int main()
{
	Framis * f[Framis::PSIZE];
	for (int i = 0; i < Framis::PSIZE; i++)
	{
		f[i] = new Framis;
	}
	new Framis;
	delete f[10];

	Framis * x = new Framis;
	delete x;
	for (int j = 0; j < Framis::PSIZE; j++)
	{
		delete f[j];
	}
	
	return 0;
}
 
分享到:
评论

相关推荐

    C++编程思想原版pdf

    C++编程思想C++编程思想C++编程思想C++编程思想C++编程思想C++编程思想C++编程思想C++编程思想C++编程思想C++编程思想C++编程思想C++编程思想C++编程思想C++编程思想C++编程思想C++编程思想C++编程思想C++编程思想...

    C++编程思想.pdf

    C++编程思想 目 录 译者序 前言 第1章 对象的演化 1 1.1 基本概念 1 1.1.1 对象:特性+行为 1 1.1.2 继承:类型关系 1 1.1.3 多态性 2 1.1.4 操作概念:OOP程序像什么 3 1.2 为什么C++会成功 3 1.2.1 较好的C 3 ...

    C++编程思想课后习题答案

    《C++编程思想》是Bjarne Stroustrup编著的一本经典C++教程,它深入浅出地讲解了C++语言的核心概念和技术。课后习题是学习过程中的重要组成部分,它们帮助读者巩固理解、深化对编程知识的掌握。这份“C++编程思想...

    C++编程思想

    《C++编程思想》是一本深受程序员喜爱的经典书籍,它深入浅出地介绍了C++这一强大的编程语言。这本书不仅涵盖了C++的基础语法,还详细探讨了面向对象编程、泛型编程以及设计模式等高级主题。以下是对这本书中关键...

    C++编程思想 编程思想

    《C++编程思想》是一本深受程序员喜爱的经典之作,它深入浅出地讲解了C++这一强大而复杂的编程语言。本书旨在帮助读者理解和掌握C++的核心概念,包括面向对象编程、泛型编程以及设计模式等关键主题。通过阅读这本书...

    C++编程思想 pdf

    6. **智能指针**:为了解决原始指针可能导致的内存管理问题,C++引入了智能指针(如auto_ptr、unique_ptr、shared_ptr),它们自动管理对象的生命周期,防止内存泄漏。 7. **C++11及后续标准**:自C++11开始,标准...

    C++编程思想(Thinking in C++)完美版pdf

    Bruce Eckel 《Thinking in Java》(Java编程思想)作者。Eckel有20年专业编程经验,并自1986年起教育人们如何撰写面向对象程序,足迹遍及全球,成为一位知名的 C++教师和顾问,如今兼涉Java。他是C++标准委员会拥有...

    C++编程思想pdf 中文版

    《C++编程思想》是一本深受程序员喜爱的经典教程,由Bruce Eckel著,中文版的出版使得更多中国读者能够深入理解C++这门强大的编程语言。这本书不仅涵盖了C++的基础知识,还深入探讨了面向对象编程的概念和技术,是...

    C++编程思想 C++编程思想 C++编程思想 C++编程思想

    C++编程思想是深入理解C++这门语言的关键,它涵盖了C++的各个方面,包括基本语法、面向对象编程、模板元编程以及STL等。在C++编程中,理解其核心概念是提升编程效率和写出高效代码的基础。 首先,C++作为一门强类型...

    C++编程思想卷一练习题答案

    《C++编程思想卷一练习题答案》是C++学习者的重要参考资料,它与C++领域的权威著作《C++编程思想》(第二版)紧密关联,旨在帮助读者深入理解和掌握书中的概念。这本书以理论结合实践的方式,通过一系列精心设计的...

    C++编程思想(中文)12-21

    C++编程思想(中文)12-21 C++编程思想(中文)12-21

    C++编程思想[第二卷]pdf

    7. **内存管理**:C++提供了对内存的直接控制,理解动态内存分配(new、delete)、内存对齐以及智能指针(shared_ptr、unique_ptr、weak_ptr)的使用,对于避免内存泄漏和提高程序效率至关重要。 通过深入阅读《C++...

    c++编程项目:宾馆客房管理系统.zip

    c++编程项目:宾馆客房管理系统.zip c++编程项目:宾馆客房管理系统.zip c++编程项目:宾馆客房管理系统.zip c++编程项目:宾馆客房管理系统.zip c++编程项目:宾馆客房管理系统.zip c++编程项目:宾馆客房管理系统....

    c++编程思想 PDF

    《C++编程思想》是一本深受程序员喜爱的经典之作,由Bruce Eckel撰写,全面而深入地探讨了C++编程语言的各个方面。这本书以其独特的视角和深入浅出的讲解,不仅适合初学者入门,也为经验丰富的程序员提供了宝贵的...

    c++编程思想(pdf)

    《C++编程思想》是一本...通过深入学习《C++编程思想》,读者不仅可以掌握C++的基础知识,还能理解如何运用这些知识去构建高效、可维护的系统。书中丰富的实例和清晰的解释将帮助读者逐步成长为一名精通C++的程序员。

    C++编程思想pdf

    《C++编程思想》是C++编程领域的一部经典著作,由Bjarne Stroustrup,也就是C++语言的设计者之一编写。这本书深入浅出地介绍了C++编程的核心概念、设计模式以及编程技巧,旨在帮助读者理解并掌握C++的精髓。 首先,...

    c++编程项目:个人收支管理系统.zip

    c++编程项目:个人收支管理系统.zip c++编程项目:个人收支管理系统.zip c++编程项目:个人收支管理系统.zip c++编程项目:个人收支管理系统.zip c++编程项目:个人收支管理系统.zip c++编程项目:个人收支管理系统....

    c++编程实战:个人收支管理系统.zip

    c++编程实战:个人收支管理系统.zip c++编程实战:个人收支管理系统.zip c++编程实战:个人收支管理系统.zip c++编程实战:个人收支管理系统.zip c++编程实战:个人收支管理系统.zip c++编程实战:个人收支管理系统....

    C++编程思想(全册pdf格式)

    《C++编程思想》是一本深受程序员喜爱的经典教程,它由Bjarne Stroustrup,C++语言的设计者和创造者编写。这本书分为上下两册,全面深入地探讨了C++语言的核心概念、设计模式以及编程实践。在这里,我们将详细讨论书...

    C++编程思想第2版(上下卷)中文版

    《C++编程思想》是Bjarne Stroustrup所著的一部C++编程的经典之作,分为两卷,全面深入地探讨了C++语言的核心概念和技术。这本书不仅适合初学者,也对有经验的程序员有着极高的参考价值。下面将详细阐述书中涉及的...

Global site tag (gtag.js) - Google Analytics