Pourquoi mon segment est endommagé?

J'obtiens une erreur de corruption de segment de mémoire, ne peut pas comprendre pourquoi.

Ma base :

h:

class Base
{
public :
    Base(char* baseName, char* cityName);
    virtual ~Base();

    list<Vehicle*>::const_iterator GetEndList();
    void PrintAllVehicles(ofstream &ResultFile) const;
    char* GetBaseName() const;
    char* GetLocation() const;
    void InsertNewVehicleToBase(Vehicle* newVehicle);
    list<Vehicle*>::const_iterator FindVehicle(char* id);
    void RemoveVehicle (list<Vehicle*>::const_iterator beg);



 private:
    char* m_name;
    char* m_location;
    list<Vehicle*> m_baseVehicles;

};  

rpc :

Base::Base(char* baseName, char* cityName)
{
    m_name = new char [strlen(baseName)+1];
    strcpy(m_name, baseName);
    m_location = new char [strlen(cityName)+1];
    strcpy(m_location, cityName);
}

Base::~Base()
{
    delete [] m_name;
    delete [] m_location;
    //m_baseVehicles.clear();
}

armée de terre destructeur :

Army::~Army()
{
    list<Base*>::iterator baseIter = m_basesList.begin();
    for (baseIter ; baseIter != m_basesList.end() ; ++baseIter)
        delete (*baseIter);
    m_basesList.clear();
 }  

Ce que je fais mal?

Comment m_basesList obtenir remplie en premier lieu?
Nous ne pouvons pas dire si nous avons compilable code.
En aparté, pourquoi êtes-vous à l'aide de char* et non pas std::string.
devoirs exigence.
moron exigence (mauvais jeu de mots 😉 )

OriginalL'auteur Roy Gavrielov | 2010-09-27