c ++中的访问冲突例外

时间:2018-04-29 08:12:57

标签: c++ memory

我正在尝试学习c ++,我已经阅读了很多关于它的知识并且得到了它,但是每当我编写使用OOP概念的东西时,我都会遇到内存问题。

这是我用我的代码获得的例外:

  

Mathmatician.exe中0x002EFB60处的第一次机会异常:0xC0000005:访问冲突执行位置0x002EFB60。

     

如果存在此异常的处理程序,则可以安全地继续该程序。

所以我的问题是: 我的具体代码有什么问题? 更重要的是,我怎样才能避免这种情况? c ++中的经验法则是避免这些吗?

另一件事:如何避免从被删除的函数返回局部变量(我假设只返回值本身,而不是指针?)

(更多信息:这个特定的代码将用于计算派生,使用不同的公式,如devision,multiplication,以及更多来自Form虚拟类的内容)

$("#test").remove();

谢谢!

1 个答案:

答案 0 :(得分:-1)

您可能会看到我的回答here new 的问题在于它不会清除已分配空间的内存。 new 的解决方案是在初始化元素时添加以下行。

memset(element,0,sizeof(element));

因此,您可以确保内存中没有垃圾。

这个答案以某种方式基于我的C语言经验。最近我发现C ++有另一个叫做std::fill

的函数
using namespace std;
/* some function */
        fill(elem,elem+sizeof(elem),0);
/* end of some funtion */
相关问题