我有这段代码,它给我分段错误。const在结构类中的字符char - 分段错误
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;
}
如果我添加例如const char haha [2222];结构TRecord,它的工作原理。我不明白为什么。你可以帮我吗?
P.S.我不能使用字符串。
哪种方法可以调用哪个对象来产生分段错误? – Oswald 2013-04-09 20:37:00
是一个完整的小例子太多要问? – Beta 2013-04-09 20:37:47
这条线是无效的C++:'m_record = new TRecord * [1000];' – 2013-04-09 20:42:44