gpt4 book ai didi

c - 跨不同共享库使用的全局变量

转载 作者:行者123 更新时间:2023-11-30 18:03:10 26 4
gpt4 key购买 nike

我正在使用一个指向链表的全局指针(其中包含一个指向元素的指针和一个指向下一个节点的指针),该指针由一个 DLL 初始化。该全局变量在不同的 DLL(共享对象)之间共享。

早些时候,当系统出现全局列表时,它会被初始化,并且所有 DLL 都具有该列表的值。后来,当系统运行一个 DLL(例如 x.so)时,它删除了内存并重新初始化了整个列表,而当另一个 DLL(例如 y.so)尝试读取值时,它总是获取旧值。任何线索为什么会发生这种情况以及如何解决这个问题?

我在某处读到堆区域在 DLL 之间共享,我不确定为什么会遇到这个问题。任何帮助将不胜感激。

最佳答案

堆在同一进程中的 DLL 之间共享,但不同进程具有不同的堆。听起来好像 DLL 中有全局变量,该变量被加载到不同的进程中。如果没有某种形式的进程间通信,就无法共享。

关于c - 跨不同共享库使用的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8699923/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com