#include "StdAfx.h" #include "static_array.h" //********************************************************************* Cstatic_array::Cstatic_array(int size) { n=m=0; buf=NULL; z=size; incremento=100; } //********************************************************************* Cstatic_array::~Cstatic_array(void) { borra(); } //********************************************************************* void Cstatic_array::borra() { n=m=0; if (buf) free(buf); buf=NULL; incremento=100; } //********************************************************************* BOOL Cstatic_array::reserva( int p ) { BYTE *bb; if (n+p>m) { m+=incremento; if (n>incremento) m+=n; if (buf) bb=(BYTE*)realloc(buf,m*z); else bb=(BYTE*)malloc(m*z); if(bb) buf=bb; else return FALSE; } return TRUE; } //********************************************************************* BYTE* Cstatic_array::get( int i ) { if (i<0||i>=n) return NULL; return &buf[i*z]; } //********************************************************************* void Cstatic_array::add( BYTE* e ) { reserva(); memcpy(&buf[n*z],e,z); n++; } //********************************************************************* BYTE* Cstatic_array::get_cp( int i ) { BYTE* b; BYTE* r; b=get(i); if (b) { r=(BYTE*)malloc(z); memcpy(r,b,z); return r; } return NULL; } //*********************************************************************