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

来源:百度知道 编辑:UC知道 时间:2024/07/07 04:35:29
#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

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

改成这样

你是没I呀

for里的I,是函数for里的局部变量,除非Framis在for里面执行

一般是在Framis里设一个私有变量比如Framis_num,再公开一个函数改这变量