Эта ошибка обычно возникает при записи за пределы выделенной памяти.
Очень вероятным виновником является использование sizeof
, например, malloc( 4 * (sizeof( this->maxsize)+1) )
.
Если вы хотитечтобы выделить this->maxsize + 1
элементов, вы должны использовать только это, а не sizeof
.
Но вы должны использовать sizeof
, чтобы получить размер каждого элемента (например, sizeof *temp
).
Так что утверждение
int* temp = malloc( 4 * (sizeof( this->maxsize)+1) );
должно действительно выглядеть как
int* temp = malloc( sizeof *temp * (this->maxsize+1) );