在 C 库中使用静态变量的内存地址

问题描述 投票:0回答:0

在库libA中,有一个sometype_t的静态全局变量var。库 libA 提供了 get 函数来返回指向 sometype_t 的指针,这是 var

的地址

在应用程序中与库A静态链接。它调用库libA中的get函数。返回的指针是“var”在静态库libA中的正确内存地址,用这个指针获取sometype_t中的成员变量取错值。

这是一个单线程程序。在主函数用返回的指针完成之前,库 libA 中的变量 var 不会被更改

有什么问题吗?

我在libA的get函数里面添加了print语句,用来监控var及其成员变量的内存地址。它们显示正确的值。然而,在应用程序的主函数中,在get函数调用之后,虽然返回的指针是var内存地址的正确值,但其成员变量的值是错误的。

c static
© www.soinside.com 2019 - 2024. All rights reserved.