/* BlinkenLib
* version 0.3 date 2005-02-16
* Copyright 2004-2005 Stefan Schuermans <1stein@schuermans.info>
* Copyleft: GNU public license - http://www.gnu.org/copyleft/gpl.html
* a blinkenarea.org project
* powered by eventphone.de
*/
#include <stdlib.h>
#include "Tools.h"
void * malloc1D( int count1, int size )
{
if( count1 < 1 ) count1 = 1;
if( size < 1 )
return NULL;
return malloc( count1 * size );
}
void * * malloc2D( int count1, int count2, int size )
{
int sz, i;
char * p;
void * * ptr;
if( count1 < 1 ) count1 = 1;
if( count2 < 1 ) count2 = 1;
if( size < 1 )
return NULL;
sz = count1 * sizeof( void * ) + count1 * count2 * size;
p = (char *)malloc( sz );
if( p == NULL )
return NULL;
ptr = (void * *)p;
p += count1 * sizeof( void * );
for( i = 0; i < count1; i++ )
{
ptr[i] = (void *)p;
p += count2 * size;
}
return ptr;
}
void * * * malloc3D( int count1, int count2, int count3, int size )
{
int sz, i, j;
char * p;