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

📄 memory.c

📁 对内存的分配、释放和使用进行检查
💻 C
字号:
/* * (c) Copyright 1990 Conor P. Cahill (uunet!virtech!cpcahil).   * You may copy, distribute, and use this software as long as this * copyright statement is not removed. */#ifndef lintstaticchar rcs_hdr[] = "$Id: memory.c,v 1.5 90/05/11 15:39:36 cpcahil Exp $";#endifchar *memccpy(ptr1, ptr2, ch, len)	register char	* ptr1;	register char	* ptr2;	int		  len;	int		  ch;{	int		  check;	register int	  i;	char		* rtn;	/*	 * I know that the assignment could be done in the following, but	 * I wanted to perform a check before any assignment, so first I 	 * determine the length, check the pointers and then do the assignment.	 */	for( i=0; (i < len) && (ptr2[i] != ch); i++)	{	}	if( ptr2[i] == ch )	{		check = i+1;	}	malloc_check_data("memccpy", ptr1, check);	malloc_check_data("memccpy", ptr2, check);	/*	 * if we found the character... 	 */	if( i < len )	{		rtn = ptr1+i+1;		i++;	}	else	{		rtn = (char *) 0;	} 	while( i-- )	{		*(ptr1++) = *(ptr2++);	}		return(rtn);}char *memchr(ptr1,ch,len)	register char	* ptr1;	register int	  ch;	int		  len;{	int		  i;	for( i=0; (i < len) && (ptr1[i] != ch); i++)	{	}	malloc_check_data("memchr", ptr1, i);	if( i < len )	{		return( ptr1+i );	}	else	{		return( (char *) 0);		}}char *memcpy(ptr1, ptr2, len)	register char	* ptr1;	register char	* ptr2;	register int	  len;{	char		* rtn = ptr1;	malloc_check_data("memcpy", ptr1, len);	malloc_check_data("memcpy", ptr2, len);		while( len-- )	{		*(ptr1++) = *(ptr2++);	}	return(rtn);}intmemcmp(ptr1, ptr2, len)	register char	* ptr1;	register char	* ptr2;	register int	  len;{	malloc_check_data("memcpy", ptr1, len);	malloc_check_data("memcpy", ptr2, len);	while( --len && (*ptr1 == *ptr2) )	{		ptr1++;		ptr2++;	}	return( *ptr1 - *ptr2 );}char * memset(ptr1, ch, len)	register char	* ptr1;	register int	  ch;	register int	  len;{	char		* rtn = ptr1;	malloc_check_data("memcpy", ptr1, len);	while( len-- )	{		*(ptr1++) = ch;	}	return(rtn);}char *bcopy(ptr2,ptr1,len)	char		* ptr2;	char		* ptr1;	int		  len;{	return(memcpy(ptr1,ptr2,len));}char *bzero(ptr1,len)	char		* ptr1;	int		  len;{	return(memset(ptr1,'\0',len));}intbcmp(ptr2, ptr1, len)	char		* ptr1;	char		* ptr2;	int		  len;{	return( memcmp(ptr1,ptr2,len) );}/* * $Log:	memory.c,v $ * Revision 1.5  90/05/11  15:39:36  cpcahil * fixed bug in memccpy(). *  * Revision 1.4  90/05/11  00:13:10  cpcahil * added copyright statment *  * Revision 1.3  90/02/24  21:50:29  cpcahil * lots of lint fixes *  * Revision 1.2  90/02/24  17:29:41  cpcahil * changed $Header to $Id so full path wouldnt be included as part of rcs  * id string *  * Revision 1.1  90/02/22  23:17:43  cpcahil * Initial revision *  */

⌨️ 快捷键说明

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