C ++应用程序在删除时崩溃

苏木渡

我有一个用c ++编写的相当复杂的应用程序。我有一个叫的班级OrderBook我需要动态创建一个OrderBook对象数组,所以我要做的是,

OrderBook* pOrderBooks; // In header file

在运行时,我将数组创建为

p_OrderBooks = new OrderBook[n]; // n is an integer initialized at run time

该程序运行正常。但是,当我尝试删除数组时(因为我需要创建一个由指向的新数组pOrderBooks),程序崩溃了。这就是我删除它的方式。

delete[] p_OrderBooks;

我已经确保崩溃是由于该行而发生的。所以我目前正在做的是重新初始化指针,而不删除先前分配的内存。

//delete[] p_OrderBooks; // <- crash happens here
p_OrderBooks = new OrderBook[k]; // for some 'k'

但这很糟糕,因为会发生内存泄漏。我想知道在重新指向新数组之前如何正确释放内存。

苏木渡

我发现了问题。我正在将指向基类中创建的对象的指针传递给OrderBook对象。

Server* p_Server = new Server(); // Some class
...
pOrderbook[i]->SetServer(p_Server) // <- for i=[0:99]

通过(pass p_Server)存储在OrderBook对象中p_ServerBase(例如)。

Server* p_ServerBase; // <- in OrderBook.h
...
OrderBook::SetServer(Server* pServer)
{
    p_ServerBase = pServer;
}

然后在OrderBook的distructor中,我试图将其删除,p_ServerBase仍在基类中使用。

...
~OrderBook()
{
    delete p_ServerBase;
}

以前没有这种经验。我不会再这样做了:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

由于C ++ Qt多线程应用程序中删除指针而导致崩溃

来自分类Dev

在OSX上的C ++ / Objective-C应用程序中进行拖动操作时崩溃

来自分类Dev

iOS(目标C)。从数组获取块时应用程序崩溃

来自分类Dev

在表格视图目标c的搜索栏上输入文本时,应用程序崩溃

来自分类Dev

将C ++函数与委托一起使用后,C#应用程序在退出时崩溃

来自分类Dev

构建C#控制台应用程序正在编辑XML配置文件,并在启动时使应用程序崩溃

来自分类Dev

C ++ unique_ptr导致应用程序崩溃

来自分类Dev

堆大小不断增加,直到应用程序崩溃(C ++)

来自分类Dev

使用封送处理崩溃C#应用程序

来自分类Dev

无法访问的glXMakeCurrent使C ++应用程序崩溃

来自分类Dev

为什么WinDbg作为C ++应用程序崩溃的默认应用程序打开?

来自分类Dev

具有Objective-C的应用程序,在发布模式下启动时快速代码崩溃,调试模式很好

来自分类Dev

替换我的UISplitView中的detailViewController会在旋转我的应用程序Objective-C时崩溃

来自分类Dev

在Objective-c中,当找不到响应者时,应用程序崩溃,但是当消息发送到nil对象时,应用程序不会崩溃。这是为什么?

来自分类Dev

在Objective-c中,当找不到响应者时,应用程序崩溃,但是当消息发送到nil对象时,应用程序不会崩溃。这是为什么?

来自分类Dev

从数组列表中删除项目时应用程序崩溃

来自分类Dev

C#如何使应用程序即使在删除应用程序文件后仍继续运行

来自分类Dev

部署使用第三方 COM (Activex) 对象的 C# 应用程序导致应用程序崩溃

来自分类Dev

C++ Windows:处理应用程序外部崩溃到程序中

来自分类Dev

从Windows运行而不是从Visual Studio运行时,C#/ C ++应用程序崩溃

来自分类Dev

从C:\ Program Files(x86)\或C:\ Program Files运行后,WPF应用程序崩溃

来自分类Dev

多线程时C#JMS应用程序错误

来自分类Dev

C#:foreach循环中的ImageList导致应用程序在终端服务器上崩溃

来自分类Dev

QT C ++应用程序在单一计时器中崩溃并连接

来自分类Dev

Obj-c-如果tableview部分为空,应用程序崩溃吗?

来自分类Dev

Obj-c-如果tableview部分为空,应用程序崩溃吗?

来自分类Dev

全局鼠标挂钩导致应用程序崩溃(C ++ / Windows7)

来自分类Dev

Objective-C - 如何进行异常捕获并避免应用程序崩溃?

来自分类Dev

在 C++ QT 上执行 sql 后应用程序崩溃

Related 相关文章

  1. 1

    由于C ++ Qt多线程应用程序中删除指针而导致崩溃

  2. 2

    在OSX上的C ++ / Objective-C应用程序中进行拖动操作时崩溃

  3. 3

    iOS(目标C)。从数组获取块时应用程序崩溃

  4. 4

    在表格视图目标c的搜索栏上输入文本时,应用程序崩溃

  5. 5

    将C ++函数与委托一起使用后,C#应用程序在退出时崩溃

  6. 6

    构建C#控制台应用程序正在编辑XML配置文件,并在启动时使应用程序崩溃

  7. 7

    C ++ unique_ptr导致应用程序崩溃

  8. 8

    堆大小不断增加,直到应用程序崩溃(C ++)

  9. 9

    使用封送处理崩溃C#应用程序

  10. 10

    无法访问的glXMakeCurrent使C ++应用程序崩溃

  11. 11

    为什么WinDbg作为C ++应用程序崩溃的默认应用程序打开?

  12. 12

    具有Objective-C的应用程序,在发布模式下启动时快速代码崩溃,调试模式很好

  13. 13

    替换我的UISplitView中的detailViewController会在旋转我的应用程序Objective-C时崩溃

  14. 14

    在Objective-c中,当找不到响应者时,应用程序崩溃,但是当消息发送到nil对象时,应用程序不会崩溃。这是为什么?

  15. 15

    在Objective-c中,当找不到响应者时,应用程序崩溃,但是当消息发送到nil对象时,应用程序不会崩溃。这是为什么?

  16. 16

    从数组列表中删除项目时应用程序崩溃

  17. 17

    C#如何使应用程序即使在删除应用程序文件后仍继续运行

  18. 18

    部署使用第三方 COM (Activex) 对象的 C# 应用程序导致应用程序崩溃

  19. 19

    C++ Windows:处理应用程序外部崩溃到程序中

  20. 20

    从Windows运行而不是从Visual Studio运行时,C#/ C ++应用程序崩溃

  21. 21

    从C:\ Program Files(x86)\或C:\ Program Files运行后,WPF应用程序崩溃

  22. 22

    多线程时C#JMS应用程序错误

  23. 23

    C#:foreach循环中的ImageList导致应用程序在终端服务器上崩溃

  24. 24

    QT C ++应用程序在单一计时器中崩溃并连接

  25. 25

    Obj-c-如果tableview部分为空,应用程序崩溃吗?

  26. 26

    Obj-c-如果tableview部分为空,应用程序崩溃吗?

  27. 27

    全局鼠标挂钩导致应用程序崩溃(C ++ / Windows7)

  28. 28

    Objective-C - 如何进行异常捕获并避免应用程序崩溃?

  29. 29

    在 C++ QT 上执行 sql 后应用程序崩溃

热门标签

归档