ds_array.cpp

来自「内存数据库」· C++ 代码 · 共 67 行

CPP
67
字号

#include "ds_head.h"
#include "ds_array.h"

BOOL DSA_CreateArray( DS_ARRAY* me, UINT count, UINT size )
{
	if( count <= 0 )
		return FALSE;
	
	me->head = malloc( size*count );
	if( me->head == NULL )
		return FALSE;

	me->count = count;
	me->size = size;
	
	return TRUE;
}

BOOL DSA_DestroyArray( DS_ARRAY* me )
{
	if( me == NULL )
		return FALSE;

	if( me->head )
	{
		free( me->head );
		me->head = NULL;
	}

	me->count = 0;
	me->size = 0;
	
	return TRUE;
}


void* DSA_GetAt( DS_ARRAY* me, UINT index )
{
	if( me->head == NULL )
		return NULL;

	if( index >= me->count )
		return NULL;
		
	return (BYTE*)me->head + me->size*index;
}

BOOL DSA_SetAt( DS_ARRAY* me, UINT index, void* element )
{
	void* p;

	if( me->head == NULL )
		return FALSE;

	if( index >= me->count )
		return FALSE;
		
	p = (BYTE*)me->head + me->size*index;

	memcpy( p, element, me->size );

	return TRUE;
}


⌨️ 快捷键说明

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