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

📄 ch12-memleak.c

📁 linux编程精髓 源代码
💻 C
字号:
/* ch12-memleak.c --- demonstrate memory leaks with setjmp()/longjmp(). */#include <stdio.h>#include <malloc.h>		/* for definition of ptrdiff_t on GLIBC */#include <setjmp.h>#include <unistd.h>jmp_buf env;void f1(void), f2(void);/* main --- leak memory with setjmp() and longjmp() */int main(void){	char *start_break;	char *current_break;	ptrdiff_t diff;	start_break = sbrk((ptrdiff_t) 0);	if (setjmp(env) == 0)		/* first time */		printf("setjmp called\n");	current_break = sbrk((ptrdiff_t) 0);	diff = current_break - start_break;	printf("memsize = %ld\n", (long) diff);	f1();	return 0;}/* f1 --- allocate some memory, make a nested call */void f1(void){	char *p = malloc(1024);	f2();}/* f2 --- allocate some memory, make longjmp */void f2(void){	char *p = malloc(1024);	longjmp(env, 1);}

⌨️ 快捷键说明

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