首页 > 解决方案 > C fork() 和指针交互

问题描述

所以,我写了这个简单的程序:我分配一个整数(获取它的指针),fork() 几次,然后打印地址和那个地址中的值。

int main() {
    int* p = malloc(sizeof(int));
    (*p) = 0;

    fork();
    fork();
    fork();

    (*p)++;
    sleep(1);

    printf("%p\t%d\n", p, *p);
    return 0;
}

我希望输出是地址的 8 倍,然后是值 8,因为它增加了 8 倍,但输出是:

0x55befa116260  1
0x55befa116260  1
0x55befa116260  1
0x55befa116260  1
0x55befa116260  1
0x55befa116260  1
0x55befa116260  1
0x55befa116260  1

谁能解释这种行为?

标签: cfork

解决方案


推荐阅读