Modularizando o src
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
vector.cpp
- Committer:
- klauss
- Date:
- 2015-11-24
- Revision:
- 137:32dd35a6dbc9
- Parent:
- 135:2f4290590e51
File content as of revision 137:32dd35a6dbc9:
#include "vector.h" Vector::Vector () { this -> objects = NULL; this -> elements = 0; } Vector::~Vector () { if ( this -> objects != NULL ) free ( this -> objects ); } void Vector::add ( Object * e ) { if ( e != NULL ) { this -> objects = ( Object ** ) realloc ( this -> objects, sizeof ( Object * ) * ++( this -> elements ) ); if ( this -> objects == NULL ) { memory_is_over = true; if ( debug_memory ) vz_debug ( "Vector add fail" ); } else { this -> objects [ this -> elements - 1 ] = e; } } } Object * Vector::get_element ( int position ) { return ( position > -1 && position < this->elements ) ? ( Object * ) * ( this -> objects + position ) : NULL; } void Vector::remove_element ( int position ) { if ( debug_vector ) vz_debug ( "Removing element %d", position ); if ( position > -1 && position < this -> elements ) { if ( position == 0 && this -> elements == 1 ) { this -> elements = 0; free ( this -> objects ); this -> objects = NULL; } else { this -> objects [ position ] = this -> objects[ -- ( this -> elements ) ]; this -> objects = ( Object ** ) realloc ( this -> objects, sizeof ( Object * ) * this -> elements ); if ( this -> objects == NULL ) memory_is_over = true; if ( debug_memory ) vz_debug ( "Resize Vector fail" ); } } if ( debug_vector ) vz_debug ( "Removed" ); } int Vector::size ( void ) { return this -> elements; } int Vector::print_yourself ( void ) { vz_printf ("\r\n"); vz_printf ("Elements :: %d ( %p )", this -> elements, &( this->elements ) ); vz_printf ("Values ::\r\n"); if ( this -> elements == 0 ) { vz_printf ( "Objects :: %p", this -> objects ); } else { for ( register int i = 0; i < this -> elements; i++ ) { vz_printf ("[ %i ] :: %p", i, ( this -> objects + i ) ); } } vz_printf ("\r\n"); return ( sizeof ( Vector ) ); }