htarray.c

来自「www工具包」· C语言 代码 · 共 89 行

C
89
字号
/*								      HTArray.c**	ARRAY HANDLING:	FLEXIBLE ARRAYS OF POINTERS****	(c) COPYRIGHT MIT 1995.**	Please first read the full copyright statement in the file COPYRIGH.**	@(#) $Id: HTArray.c,v 2.7 1998/05/04 19:36:13 frystyk Exp $**** history:	Sep 95 HFN	Written after looking at Hancock Tower*//* Library include files */#include "wwwsys.h"#include "HTUtils.h"#include "HTArray.h"				         /* Implemented here *//*	Create a array with a certain allocation unit**	--------------*/PUBLIC HTArray * HTArray_new (int grow){    HTArray * array;    if ((array = (HTArray  *) HT_CALLOC(1, sizeof(HTArray))) == NULL)        HT_OUTOFMEM("HTArray_new");    array->growby = grow;    return array;}/*	Clear a array of all data**	--------------------------*/PUBLIC BOOL HTArray_clear (HTArray * array){    if (array) {	HT_FREE(array->data);	array->size = 0;	array->allocated = 0;	return YES;    }    return NO;}/*	Free an array**	-------------*/PUBLIC BOOL HTArray_delete (HTArray * array){    if (array) {	HT_FREE(array->data);	HT_FREE(array);	return YES;    }    return NO;}/*	Add an object**	-------------*/PUBLIC BOOL HTArray_addObject (HTArray * array, void * object){    if (array) {	if (array->size >= array->allocated-1) {	    if (array->data) {		if ((array->data = (void * *) HT_REALLOC(array->data, (array->allocated+array->growby) * sizeof(void *))) == NULL)		    HT_OUTOFMEM("HTArray_add");		memset((array->data+array->allocated), '\0', array->growby * sizeof(void *));	    } else {		if ((array->data = (void * *) HT_CALLOC(array->growby, sizeof(void *))) == NULL)		    HT_OUTOFMEM("HTArray_add");	    }	    array->allocated += array->growby;	}	*(array->data+array->size++) = object;	return YES;    }    return NO;}/*	Sort an array**	-------------*/PUBLIC BOOL HTArray_sort (HTArray * array, HTComparer * comp){    if (array && comp) {	qsort(array->data, array->size, sizeof (void *), comp);	return YES;    }    return NO;}

⌨️ 快捷键说明

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