内存访问问题

时间:2011-12-22 15:54:42

标签: c++ memory pointers

我的应用程序有问题 - win32。我有客户端和服务器(没有与网络连接,只是名称)。客户端应用程序不是应用程序,它的插件在主应用程序中工作。服务器应用程序是外部应用程序,它具有封闭的源代码,可以从客户端回调函数。客户端(插件)通过“链接”(指向具有函数的结构的指针)与MainApplication进行通信,并且可以发送指向已指定的已定义结构(已填充)的指针,例如:带有消息,日期和名称的结构。我可以修改插件的源代码。现在问题,服务器正在调用函数(例如,收到消息),正在创建并填充“消息结构”,然后使用Link发送指向该结构的指针MainApplication崩溃,因为无法读取该内存块。

服务器调用功能 - >创建和填充结构 - >通过链接将该结构的指针发送到MainApplication-> MainApplication尝试读取内存地址和BAM崩溃。

如果我手动执行此操作,则从插件开始工作。

我应该如何将该结构发送到主应用程序? MainApplication只能接收结构地址。也许有点乱,但你应该明白问题。

1 个答案:

答案 0 :(得分:1)

将该结构发送到MainApplication的服务器调用函数可以是该服务器函数的本地指针。您可以动态地为该指针分配内存空间,这将被分配,并希望可以将其传递给主应用程序。这不会导致代码崩溃,因为您尚未从堆中释放内存,然后您可以在主应用程序完成指针后将其从堆中释放