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

Gurkmeja101

I'm trying to build my own Matrix class and have overloaded the "*=" operator. I am however running into problems with some pointer loss. I don't understand where my problem is at the moment.

Is it because I'm creating a new Matris "new_m" and this only lives inside the scope of the function? So I can't set the new pointer to data to the implied (*this) object?

Below is the code for my *= operator.

Matris<T> &operator*=(const Matris<T> &m){
     //if(m_cols != m.m_rows || m.rows != m.m_cols) throw new std::out_of_range("When multiplying two matrices they have to have be \"opposites\", that is one can be 1x2 and other one 2x1.");
     //else{
       unsigned int new_cap = m_rows * m.m_cols;
       Matris<T> new_m(sqrt(new_cap));
       new_m.m_vec = (T*) realloc(new_m.m_vec, new_cap*sizeof(T));
       std::memset (new_m.m_vec, 0, sizeof(T) * new_cap);
       for(size_t i = 0; i < m_rows; i++){
          for (size_t j = 0; j < m.m_cols; j++) {
            for (size_t k = 0; k < m_cols; k++) {
              new_m(i,j) += (*this)(i,k) * m(k,j);
            }
          }
       }
       m_vec = new_m.m_vec;
     //}
     return *this;
   }

And this is how I store and save my data in my Matris class:

private:
   size_t m_rows;
   size_t m_cols;
   size_t m_capacity;
   T * m_vec;

This is the constructor that is being called with an int:

explicit Matris(const unsigned int i){  //constructor with one integer, has to be integer, can't be negative or float.
     m_rows = i;
     m_cols = i;
     m_capacity = i*i;
     m_vec = (T*) malloc(i*i*sizeof(T));
     std::memset (m_vec, 0, sizeof (T) * i*i);
   }
David Schwartz
   m_vec = new_m.m_vec;

This makes m_vec point to part of the temporary object that's about to be destroyed. You want:

  *this = new_m;

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"

From Dev

Pointer being freed was not allocated (while implementing stack as a linked list)

From Dev

delete[] pointer being freed was not allocated

From Dev

pointer being freed was not allocated in C

From Dev

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

From Dev

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

From Dev

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

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

From Dev

malloc and free: pointer being freed was not allocated

From Dev

C "pointer being freed was not allocated" error

From Dev

C Program Issue "pointer being freed was not allocated"

From Dev

C "pointer being freed was not allocated" error

From Dev

malloc and free: pointer being freed was not allocated

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 even though it was allocated before

From Dev

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

From Dev

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

From Dev

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

From Dev

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

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

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

From Dev

C: malloc error-pointer being freed was not allocated

From Dev

"Pointer being freed was not allocated" happen on mac but not on window7

From Dev

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

Related Related

  1. 1

    "pointer being freed was not allocated"

  2. 2

    Pointer being freed was not allocated (while implementing stack as a linked list)

  3. 3

    delete[] pointer being freed was not allocated

  4. 4

    pointer being freed was not allocated in C

  5. 5

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

  6. 6

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

  7. 7

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

  8. 8

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

  9. 9

    pointer being freed was not allocated error when deleting reference

  10. 10

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

  11. 11

    C++: pointer being freed was not allocated

  12. 12

    malloc and free: pointer being freed was not allocated

  13. 13

    C "pointer being freed was not allocated" error

  14. 14

    C Program Issue "pointer being freed was not allocated"

  15. 15

    C "pointer being freed was not allocated" error

  16. 16

    malloc and free: pointer being freed was not allocated

  17. 17

    c++ pointer being freed was not allocated error

  18. 18

    Pointer being freed was not allocated! Cannot be solved

  19. 19

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

  20. 20

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

  21. 21

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

  22. 22

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

  23. 23

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

  24. 24

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

  25. 25

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

  26. 26

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

  27. 27

    C: malloc error-pointer being freed was not allocated

  28. 28

    "Pointer being freed was not allocated" happen on mac but not on window7

  29. 29

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

HotTag

Archive