I have this code and it gives me segmentation fault.
struct TRecord {
    const char * Id;
    const char * Name;
};
class CClass {
    CClass ();
    ~CClass ();
    bool Add ( const char * id, const char * name);
    TRecord ** m_record;
    int m_count;
};
CClass::CClass (void) {
    m_count = 0;
    m_record = new TRecord * [1000];
}
CClass::~CClass(void) {
    for(int i=0;i<m_count;i++){
        delete m_record[i];
    }
    delete [] m_record;
}
bool CClass::Add (const char * id, const char * name) {
    m_record[m_count] -> Id = new char[11];
    m_record[m_count] -> Name = new char[strlen(name) + 1];
    m_record[m_count] -> Id = id;
    m_record[m_count] -> Name = name;
    m_count++;
    return true;
}
If I add for example const char haha[2222]; to struct TRecord, it works. I don't understand why. Can you help me?
P.S. I can't use string.
 
     
     
     
    