C++ Builder程序运行出现Access Violation错误的常见原因
程序运行access violation出错很经常的一个原因是指针未初始化,比如一个对象还没有new创建出来或者已经释放(内存被别的占用),却通过指针访问对象的成员函数(vcl对象的属性其实内部也是调用了成员函数)。
另一种常见情况是一个对象二次delete,比如删除一个vcl的父控件(如容器控件Panel或者Form窗体),它会自动销毁所有的子控件,然后你又去删除一个子控件,二次删除造成access violation。这种情况如果一定要手动delete,可以先delete子控件后父控件。
还有,数组访问越界也可能会出现access violation错误。
【DelphiGuy】查看程序运行时候的内存分配及释放情况,可以启用code guard,Tools->Code Guard Configuration,enable,然后save all,build,运行。