小编IAm*_*ust的帖子

第一次取消引用后,指针指向的值会发生变化

我试图初始化"init_pointer"函数内的整数指针"p".函数返回后,我打印指针和解除引用的值两次.第一个取消引用打印预期值100,但第二个取消引用打印随机值.

#include<stdio.h>

    void init_pointer(int d, int **c){
            (*c) = &d;
    }

    int main(){
            int x = 100;
            int *p;

            init_pointer(x,&p);

            printf("pointer = %p, value = %d\n",p,*p);
            printf("pointer = %p, value = %d\n",p,*p);

            return 0;
    }
Run Code Online (Sandbox Code Playgroud)

输出:

pointer = 0x7fffb4d4b9ac, value = 100
pointer = 0x7fffb4d4b9ac, value = 32567
Run Code Online (Sandbox Code Playgroud)

c pointers

3
推荐指数
1
解决办法
974
查看次数

标签 统计

c ×1

pointers ×1