/* BlinkenLib
Copyright 2004-2014 Stefan Schuermans <stefan@schuermans.info>
Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
a blinkenarea.org project */
#include <stdlib.h>
#include "Tools.h"
void *BlinkenMalloc1D(int count1, int size) {
if (count1 < 1)
count1 = 1;
if (size < 1)
return NULL;
return malloc(count1 * size);
}
void **BlinkenMalloc2D(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;
}