⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alloc.c

📁 fget是一个小型的HTTP/FTP工具
💻 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 2048 /* 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(void *X){  char *x=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 + -