?? alloc.c
字號:
#include "alloc.h"#include "error.h"extern char *malloc();extern void free();#define ALIGNMENT 16 /* XXX: assuming that this alignment is enough */#define SPACE 4096 /* must be multiple of ALIGNMENT */typedef union { char irrelevant[ALIGNMENT]; double d; } aligned;static aligned realspace[SPACE / ALIGNMENT];#define space ((char *) realspace)static unsigned int avail = SPACE; /* multiple of ALIGNMENT; 0<=avail<=SPACE *//*@null@*//*@out@*/char *alloc(n)unsigned int n;{ char *x; n = ALIGNMENT + n - (n & (ALIGNMENT - 1)); /* XXX: could overflow */ if (n <= avail) { avail -= n; return space + avail; } x = malloc(n); if (!x) errno = error_nomem; return x;}void alloc_free(x)char *x;{ if (x >= space) if (x < space + SPACE) return; /* XXX: assuming that pointers are flat */ free(x);}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -