Чтобы добавить к ответу Джона,
то, как вы используете realloc()
, является ... ошибочным.
bool stack::meminc()
{
cap = 2 * cap;
cout << cap << endl;
this->arr = (int *)realloc(arr, sizeof(int)*cap);
return(arr ? true : false);
}
Если realloc()
не удаетсяон вернет nullptr
, и единственный указатель (arr
) на исходную область памяти исчезнет.Кроме того, вместо return(arr ? true : false);
вы должны просто использовать return arr != nullptr;
.
Правильный тм способ использования realloc()
:
bool stack::meminc()
{
int *temp = (int*) realloc(arr, sizeof(*temp) * cap * 2);
if(!temp)
return false;
cap *= 2;
arr = temp;
return true;
}
Кроме того, где этоваш copy-ctor, оператор присваивания и d-tor?