home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1997 March
/
VPR9703A.ISO
/
VPR_DATA
/
DOGA
/
SOURCES
/
POLYEDIT.LZH
/
ML
/
ALLOC.C
< prev
next >
Wrap
C/C++ Source or Header
|
1996-04-19
|
846b
|
55 lines
/*
* メモリ管理
*
* T.Kobayashi 1993.10.24
*/
#include <stdio.h>
#include <stdlib.h>
#include "inlib.h"
extern void (*ErrorExec)();
#define MALLOC_MAGIC 0x12345678
typedef struct {
int magic ;
int size ;
} MemoryHeader ;
void *MemoryAlloc( size )
int size ;
{
MemoryHeader *mem ;
mem = malloc( size + sizeof( MemoryHeader ) );
if ( mem == NULL )
return NULL ;
mem->magic = MALLOC_MAGIC ;
mem->size = size ;
#if 1
printf( "malloc( %d ) : %08X\n", size, mem );
#endif
return (void*)( mem + 1 );
}
void MemoryFree( ptr )
void *ptr ;
{
char buf[256] ;
MemoryHeader *mem ;
mem = (MemoryHeader*)ptr - 1 ;
if ( mem->magic != MALLOC_MAGIC )
{
sprintf( buf, "[ml]:Memory Block Error(%X)!!!", mem );
(*ErrorExec)( buf );
}
mem->magic = 0 ;
free( mem );
}