父母和孩子的变量地址相同,但值不同

萨蒂扬

我知道父级和子级具有不同的地址空间,但是当我运行以下代码并检查父级和子级中变量的地址时,结果是相同的。好像两个变量名都用于相同的内存位置一样,为什么子项的值更改未反映在父项中。

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

int main()
{

    int turn = 0;
    if (fork() == 0)
    {
            turn = 10;
            printf("Child Turn: %d\n", turn);
            printf("Child Address of turn: %p\n", &turn);
            exit(0);
    }
    else
    {
            sleep(2);
            printf("Parent Turn: %d\n", turn);
            printf("Parent Address of turn: %p\n", &turn);
    }

return 0;
}

输出为:

儿童转弯:10

转弯的子地址:0xbfc1830c

父母回合:0

转弯的父地址:0xbfc1830c

如果两者都具有相同的地址,为什么值不同。或例如

如果我们有两个盒子,一个叫父母,一个孩子。

两个框都包含数字1到10。

所以在子框中我们也说5

在父框中,我们还有数字5。

该数字是相同的,但在不同的框中。

在上述情况下,地址类似,为0xbfc1830c,但在不同的进程地址空间中。是这样吗

放松

这是因为虚拟内存这两个进程各自在相同的虚拟地址上具有变量,但是当然不在同一物理地址上。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

变量地址和整数之间的差

来自分类Dev

函数地址与其他变量地址几乎相同

来自分类Dev

C 中的函数参数和变量地址

来自分类Dev

使用指针的变量地址

来自分类Dev

使用指针的变量地址

来自分类Dev

当所有孩子共享相同的值时查找父母ID

来自分类Dev

相同点击事件触发父母和孩子

来自分类Dev

Swift-使用UnsafePointer传递变量和传递变量地址之间的区别?

来自分类Dev

以十进制打印变量地址

来自分类Dev

在变量地址上调用删除

来自分类Dev

使用内联汇编获取变量地址

来自分类Dev

C ++变量地址不匹配

来自分类Dev

Objective C语言中的变量地址

来自分类Dev

printf中变量地址的输出

来自分类Dev

GCC匿名函数变量地址的值抛弃比较的预期效果

来自分类Dev

单击孩子时,孩子和父母会触发两个不同的事件

来自分类Dev

js不同的变量相同的值

来自分类Dev

两个不同父母的孩子可以在React中拥有相同的键吗

来自分类Dev

父母和孩子的订单查询

来自分类Dev

Caliburn.micro 父母->孩子和孩子->父母互动

来自分类Dev

PyCharm调试变量视图:禁用变量地址

来自分类Dev

Kendo UI层次结构网格,其中父母和孩子共享相同的列

来自分类Dev

如果父母和孩子的身高相同,为什么会有垂直滚动条?

来自分类Dev

使用管道的IPC机制来完成程序,让孩子和父母打印相同的输出

来自分类Dev

如何通过pin和libelf.h获取可执行程序的全局变量地址

来自分类Dev

将整数变量地址分配给字符指针

来自分类Dev

C ++获取没有操作符的变量地址

来自分类Dev

明确定义变量地址(在Go中)

来自分类Dev

如何使asm跳转到c中的变量地址?

Related 相关文章

热门标签

归档