error: Pointer being freed was not allocated in vector template class c++

Gamaliel Tellez Ortiz

I'm building a template class vector and I have run into the error "malloc:error for object xxxxxxxxx: pointer being freed was not allocated" but I can't pinpoint where my error is. These methods are the only ones that I have implemented where the variable T *data is being used.

template <class T>
class vector
{
public:
   // constructors and destructors
   vector()                         { numElements = 0; numCapacity = 0; }
   vector(int num)                  throw (const char *);
   vector(const vector & rhs)        throw (const char *);
  ~vector()                         { delete [] data;   }
   vector & operator = (const vector & rhs) throw (const char *);

   int  size()     const { return numElements;                 }
   int  capacity() const { return numCapacity;                 }
   bool empty() const { return numElements == 0 ? true : false; }

   T & operator [] (int index)       throw (const char *)
   {
      return data[index];
   }
   const T & operator [] (int index) const throw (const char *)
   {
      return data[index];
   }

private:
   T * data;       
   int numElements; 
   int numCapacity;
};

and here are my copy constructor, none default constructor and assignment operator

template <class T>
vector <T> & vector <T> :: operator = (const vector <T> & rhs)
          throw (const char *)
{     
     if (rhs.size() == 0) {
            this->data = NULL;
            numElements = 0;
            numCapacity = rhs.capacity();
            return *this;
      }

      if (numCapacity < rhs.numElements) {
            try {
                  data = new T[rhs.numElements];
            } catch(std::bad_alloc) {
                  throw "ERROR: Unable to allocate buffer";
            }
      for (int i = 0; i < numCapacity; i++)
            data[i] = rhs.data[i];
      }

   return *this;
}



template <class T>
vector <T> :: vector(const vector <T> & rhs) throw (const char *)
{
   assert(rhs.capacity() >= 0);

   if (rhs.numCapacity == 0)
   {
      numCapacity = 0;
      numElements = 0;
      this->data = NULL;
      return;
   }

   try
   {
      data = new T[rhs.numCapacity];
   }
   catch (std::bad_alloc)
   {
      throw "ERROR: Unable to allocate buffer";
   }
   numCapacity = rhs.numCapacity;
   numElements = rhs.size();
   for (int i = 0; i < numCapacity; i++)
      data[i] = rhs.data[i];
}

template <class T>
vector <T> :: vector(int num) throw (const char *)
{
   assert(num >= 0);
   numElements = 0;
   if (num == 0)
   {
      numCapacity = 0;
      this->data = NULL;
      return;
   }
   // attempt to allocate
   try
   {
      data = new T[num];
   }
   catch (std::bad_alloc)
   {
      throw "ERROR: Unable to allocate buffer";
   }      
   numCapacity = num;
}

Any help is greatly appreciated

Barmar

The default constructor isn't initializing data.

vector() { numElements = 0; numCapacity = 0; data = NULL; }

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

"Pointer being freed was not allocated." error after malloc, realloc

From Dev

(C++ Error: pointer being freed was not allocated) for linked lists

From Dev

pointer being freed was not allocated(delete one element in an array)

From Dev

"pointer being freed was not allocated"

From Dev

Pointer being freed was not allocated, dynamic array C++

From Dev

Mac Terminal - 'pointer being freed was not allocated' error when opening terminal

From Dev

C++: "Error: Pointer being freed was not allocated" when handling large lists

From Dev

malloc: *** error for object: pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug

From Dev

C "pointer being freed was not allocated" error

From Dev

Debugging "malloc error: pointer being freed was not allocated", using gdb

From Dev

C++: pointer being freed was not allocated

From Dev

malloc and free: pointer being freed was not allocated

From Dev

" malloc error pointer being freed was not allocated " error only in simulator:

From Dev

C: malloc error-pointer being freed was not allocated

From Dev

C Program Issue "pointer being freed was not allocated"

From Dev

"Pointer being freed was not allocated." error after malloc, realloc

From Dev

Mac Terminal - 'pointer being freed was not allocated' error when opening terminal

From Dev

C "pointer being freed was not allocated" error

From Dev

malloc and free: pointer being freed was not allocated

From Dev

delete[] pointer being freed was not allocated

From Dev

When I pop, i get "pointer being freed was not allocated" error

From Dev

pointer being freed was not allocated error when deleting reference

From Dev

C: pointer being freed was not allocated -- when calling free

From Dev

C++ Pointer being freed was not allocated. Not calling free

From Dev

c++ pointer being freed was not allocated error

From Dev

Pointer being freed was not allocated! Cannot be solved

From Dev

pointer being freed was not allocated in C

From Dev

Pointer being freed was not allocated even though it was allocated before

From Dev

Pointer being freed was not allocated when implementing Matrix<T> class

Related Related

  1. 1

    "Pointer being freed was not allocated." error after malloc, realloc

  2. 2

    (C++ Error: pointer being freed was not allocated) for linked lists

  3. 3

    pointer being freed was not allocated(delete one element in an array)

  4. 4

    "pointer being freed was not allocated"

  5. 5

    Pointer being freed was not allocated, dynamic array C++

  6. 6

    Mac Terminal - 'pointer being freed was not allocated' error when opening terminal

  7. 7

    C++: "Error: Pointer being freed was not allocated" when handling large lists

  8. 8

    malloc: *** error for object: pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug

  9. 9

    C "pointer being freed was not allocated" error

  10. 10

    Debugging "malloc error: pointer being freed was not allocated", using gdb

  11. 11

    C++: pointer being freed was not allocated

  12. 12

    malloc and free: pointer being freed was not allocated

  13. 13

    " malloc error pointer being freed was not allocated " error only in simulator:

  14. 14

    C: malloc error-pointer being freed was not allocated

  15. 15

    C Program Issue "pointer being freed was not allocated"

  16. 16

    "Pointer being freed was not allocated." error after malloc, realloc

  17. 17

    Mac Terminal - 'pointer being freed was not allocated' error when opening terminal

  18. 18

    C "pointer being freed was not allocated" error

  19. 19

    malloc and free: pointer being freed was not allocated

  20. 20

    delete[] pointer being freed was not allocated

  21. 21

    When I pop, i get "pointer being freed was not allocated" error

  22. 22

    pointer being freed was not allocated error when deleting reference

  23. 23

    C: pointer being freed was not allocated -- when calling free

  24. 24

    C++ Pointer being freed was not allocated. Not calling free

  25. 25

    c++ pointer being freed was not allocated error

  26. 26

    Pointer being freed was not allocated! Cannot be solved

  27. 27

    pointer being freed was not allocated in C

  28. 28

    Pointer being freed was not allocated even though it was allocated before

  29. 29

    Pointer being freed was not allocated when implementing Matrix<T> class

HotTag

Archive