gpt4 book ai didi

c++ - OSX,静态变量共享相同的地址

转载 作者:行者123 更新时间:2023-11-28 08:28:39 26 4
gpt4 key购买 nike

在 OSX 中我有以下代码。使用 gcc 4.0.1。我是 OSX 开发的新手,所以我不确定还有哪些其他系统信息在这里有用...

static int     textstrArgs[] = { 1, 1, 1 };

void func()
{
static int first = 1;
if (first)
{
first = 0;
// stuff
}
/* other stuff */
}

其中 func() 被声明为“extern”并从另一个库调用。

问题是 'texstrArgs[2]' 和 'first' 的地址是一样的。也就是说,当应用程序加载时,它会将这两个变量放在内存中的同一位置。当调用 func() 时,第一个 = 0 破坏了静态 textstrArgs 数组中的值。

我这样做会导致这种情况发生吗?

感谢任何人可以提供的帮助。

最佳答案

我怀疑他们是否真的在共享地址。我相信您更有可能越界或类似地访问数组。

尝试打印两个变量的地址。这将告诉您您的怀疑是否正确。

关于c++ - OSX,静态变量共享相同的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3096671/

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