/********************************************************************************* * Copyright: (C) 2012 Guo Wenxue * All rights reserved. * * Filename: cp_vector.c * Description: This file is for a dynamic array * * Version: 1.0.0(11/12/2012~) * Author: Guo Wenxue * ChangeLog: 1, Release initial version on "11/12/2012 11:20:30 AM" * ********************************************************************************/ #include #include #include #include #include "cp_vector.h" #include "cp_common.h" CP_VECTOR *cp_vector_init(int size) { CP_VECTOR *vector = NULL; if(size < 0) return NULL; vector = (CP_VECTOR *)t_malloc(sizeof(CP_VECTOR)); if(!vector) { return NULL; } vector->mem = t_malloc(size*sizeof(void *)); if(!vector->mem) { t_free(vector); return NULL; } memset(vector->mem, 0, size); vector->size = size; vector->used = 0; return vector; } void *cp_vector_add(CP_VECTOR *vector, int index, void *item) { if(index<0 || index>vector->size) return NULL; vector->mem[index]=item; vector->used++; return item; } void *cp_vector_del(CP_VECTOR *vector, int index) { void *save; if(index<0 ||index>vector->size) return NULL; save = vector->mem[index]; vector->mem[index]=NULL; vector->used--; return save; } void *cp_vector_get(CP_VECTOR *vector, int index) { if(index<0 ||index>vector->size) return NULL; return vector->mem[index]; } void cp_vector_destroy(CP_VECTOR *vector) { if(!vector) return; if(vector->mem) { t_free(vector->mem); } t_free(vector); }