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

📄 malloctest2.c

📁 klibc精简化的c程序库
💻 C
字号:
#include <stdlib.h>#include <stdio.h>#include <string.h>#define NCYCLES 32768#define NSLOTS  4096struct slot {	char *ptr;	size_t size;};struct slot s[NSLOTS];int main(void){	size_t sp, sq;	char *p, *ep, *q, *eq;	int r, i, j;	int ok;	int err = 0;	for (r = 0; r < NCYCLES; r++) {		i = lrand48() % NSLOTS;		if (s[i].ptr) {			free(s[i].ptr);			printf("Freed     %8zu bytes at %p\n", s[i].size,			       s[i].ptr);			s[i].ptr = NULL;			s[i].size = 0;		} else {			sp = lrand48();	/* 32-bit random number */			sp >>= 12 + (lrand48() % 20);			s[i].size = sp;			s[i].ptr = p = malloc(sp);			ep = p + sp;			ok = 1;			for (j = 0; j < NSLOTS; j++) {				q = s[j].ptr;				if (i != j && q) {					sq = s[j].size;					eq = q + sq;					if ((p < q && ep > q)					    || (p >= q && p < eq)) {						ok = 0;						err = 1;						break;					}				}			}			printf("Allocated %8zu bytes at %p, ok = %d\n", sp, p,			       ok);			if (p)				memset(p, 0xee, sp);	/* Poison this memory */		}	}	return err;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -