I save objects in a list after creating them, but get a Segmentation fault when I try to read it from this list. When I print the pointers it shows me the same adress as the adress when creating then, so I dont know why I get a Seg.Fault.
Maybe you have a idea whats my error. Ty:
main:
int main()
{
  Computer computer("My Computer",1000);
  computer.addHardware("Monitor",250);
  computer.removeHardware("Monitor",250);
  computer.addHardware("Monitor",150);
  return 0;
}
Computer.c:
#include "Computer.h"
Computer::Computer(std::string name, int budget) : name_(name), budget_(budget),momentary_cost_(0){}
Computer::~Computer(){}
void Computer::addHardware(const char* name, int cost)
{
  Hardware newHardware =  Hardware(name,cost);
  if(momentary_cost_ + cost < budget_)
  {
    HardwareList.push_back(&newHardware);
    momentary_cost_ += cost;
  }
  else
  {
    delete(&newHardware);
  }
}
void Computer::removeHardware(const char* name, int cost)
{
  for (auto it = HardwareList.begin(); it != HardwareList.end(); ++it)
  {
    if (std::string(name) == std::string((*it)->getName()) || cost == (*it)->getCost())
    {
      HardwareList.erase(it);
    //  HardwareList = (Hardware*)realloc(HardwareList, sizeof(HardwareList)*(HardwareList.size()-1));
      delete(&it);
    }
  }
}
