40 lines
598 B
C
40 lines
598 B
C
|
|
#ifndef ARRAY_H
|
||
|
|
#define ARRAY_H
|
||
|
|
|
||
|
|
#define ARRAY_INIT_CAPACITY 1000000
|
||
|
|
|
||
|
|
#include "text.h"
|
||
|
|
|
||
|
|
typedef struct array {
|
||
|
|
|
||
|
|
void * * items;
|
||
|
|
|
||
|
|
int capacity;
|
||
|
|
|
||
|
|
int total;
|
||
|
|
|
||
|
|
} array;
|
||
|
|
|
||
|
|
array * array_new();
|
||
|
|
|
||
|
|
int array_length( array * );
|
||
|
|
|
||
|
|
static void array_resize( array *, int );
|
||
|
|
|
||
|
|
void array_add( array *, void * );
|
||
|
|
|
||
|
|
void array_set( array *, int, void * );
|
||
|
|
|
||
|
|
void * array_get( array *, int );
|
||
|
|
|
||
|
|
void array_delete( array *, int );
|
||
|
|
|
||
|
|
void array_free( array * );
|
||
|
|
|
||
|
|
char * array_join( struct array * parts, char * separator );
|
||
|
|
|
||
|
|
void array_unshift( array * v, void * item );
|
||
|
|
|
||
|
|
void * array_pop( array * v );
|
||
|
|
|
||
|
|
#endif
|