遇到C++类型有关问题了!希望大牛能解决

遇到C++类型问题了!希望大牛能解决!
class fi
{
public :
fi(){};
virtual void ri(){};
};
class se : public fi
{
public :
se(){};
char abc;
};
int main(void)
{
fi* f = new fi;

static_cast<se*>(f)->abc = 'a';

cout << static_cast<se*>(f)->abc << endl;

return 0;
}

谁能帮我解释一下!程序中的abc内存是怎么分配的?

------解决方案--------------------
c++对象new操作一般在heap(堆)中为对象分配空间,abc应该在heap中。

你这样强制转换对象,abc的地址可能是非法指针,也可能会overwrite其他空间。

你不妨打印出地址来看看。
------解决方案--------------------
你构造的是fi类,abc不是fi类的成员,没有未其分配内存,访问abc是越界访问。