?? mem.c
字號:
#include <stdlib.h>
#include <stddef.h>
#include "assert.h"
#include "except.h"
#include "mem.h"
const Except_T Mem_Failed =
{
"Allocation Failed"
};
void *Mem_alloc(long nbytes, const char *file, int line)
{
void *ptr;
assert(nbytes > 0);
ptr = malloc(nbytes);
if (ptr == NULL)
{
if (file == NULL)
RAISE(Mem_Failed);
else
Except_raise(&Mem_Failed, file, line);
}
return ptr;
}
void *Mem_calloc(long count, long nbytes, const char *file, int line)
{
void *ptr;
assert(count > 0);
assert(nbytes > 0);
ptr = calloc(count, nbytes);
if (ptr == NULL)
{
if (file == NULL)
RAISE(Mem_Failed);
else
Except_raise(&Mem_Failed, file, line);
}
return ptr;
}
void Mem_free(void *ptr, const char *file, int line)
{
if (ptr)
free(ptr);
}
void *Mem_resize(void *ptr, long nbytes, const char *file, int line)
{
assert(ptr);
assert(nbytes > 0);
ptr = realloc(ptr, nbytes);
if (ptr == NULL)
{
if (file == NULL)
RAISE(Mem_Failed);
else
Except_raise(&Mem_Failed, file, line);
}
return ptr;
}
/*
void main(void)
{
char *str1, *str2;
double *d1, *d2;
int m=30, n=20;
str1=NEW(str1);
printf( "str1=%d\n", str1 );
d1=NEW0(d1);
printf( "d1=%d\n", d1 );
str2=ALLOC(m);
printf( "str2=%d\n", str2 );
d2=CALLOC( n, sizeof(double) );
printf( "d2=%d\n", d2 );
}
*/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -