All pastes #760651 Raw Edit

Adam

public c v1 · immutable
·published 2007-11-04 04:47 UTC
rendered paste body
//START Makefileall: mainVector.o: Vector.c Vector.h        gcc -Wall -c Vector.cvectortest.o: vectortest.c        gcc -Wall -c vectortest.cmain: vectortest.o Vector.o        gcc -Wall -o Vector vectortest.o Vector.oclean:        -rm -f *.o Vector//START Vector.c#include <stdlib.h>#include "Vector.h"Vector create(int def_size){        Vector v;        v = malloc(sizeof(vectorStruct));        v->array = malloc(def_size * sizeof(TYPE));        v->size = 0;        v->max_size = def_size;        return v;}int destroy(Vector v){        /* For Dynamic allocated TYPE's        // for(i=0;i<v->size;i++){        //              free(v->array[i]);        //      }        */        free(v->array);        free(v);        return 1;}TYPE get(Vector v, int index){        if (index >= v->size) {                return (int)NULL;        }        return v->array[index];}void put(Vector v, TYPE obj, int index){        if (index >= v->size) {                return;        }        v->array[index] = obj;}void add(Vector v, TYPE obj){        if (v->size == v->max_size){                v->max_size = v->max_size * 2;                v->array = realloc(v->array, (v->max_size * 2) * sizeof(TYPE));        }        v->array[v->size++] = obj;}TYPE first(Vector v){        return v->array[0];}TYPE last(Vector v){        return v->array[v->size];}int size(Vector v){        return v->size;}//START Vector.h#ifndef __VECTOR_H__#define __VECTOR_H__#ifndef TYPE#define TYPE int#endiftypedef struct{        TYPE *array;        int size;        int max_size;}vectorStruct;typedef vectorStruct* Vector;/** * Return the newly created Vector * */Vector create(int defSize);/** * return 1 if destroied successfully * */int destroy(Vector v);/** * return TYPE at index * */TYPE get(Vector v, int index);/** * change TYPE at index * */void put(Vector v, TYPE obj, int index);/** * add TYPE to end of Vector * */void add(Vector v, TYPE obj);/** * return TYPE at start * */TYPE first(Vector v);/** * return TYPE at end * */TYPE last(Vector v);/** * return number of elements * */int size(Vector v);#endif// START vectortest.c#include <stdio.h>#include "Vector.h"int main(int argc, char** argv){        Vector v = create(20);        int i;        for(i=0;i<100;i++){                add(v,i);        }        put(v,35,99);        for(i=0;i<100;i++){                printf("%d\n",get(v,i));        }        return 1;}