2010年5月30日星期日

Bug Series - crash at delete pointer

void Scene::setCamera(Camera *_camera) {
if (m_pCamera) {
delete m_pCamera;
m_pCamera = 0;
}
this->m_pCamera = _camera;
}
这个是错的, 因为第一次到if时候, m_pCamera之前不一定是new出来的而因为垃圾数据而非零, 于是在delete时候就crash了.
所以m_pCamera需要在构造函数中初始化为0.

没有评论:

发表评论