为什么将指针传递给函数会破坏其内容?

时间:2016-01-15 18:57:25

标签: c++ c pointers parameter-passing

我试图将指针传递给函数但是当我在函数中打印它时,它会修改来自另一个函数的数据。请看我的代码:

void funct(int *p){
    int a=0;
    int b=0;
    puts("------Fucnt--------");
    printf("this is p %p\n",p);
    printf("this is *p %d\n",*p);
}

int * getarray(){

    int A[] = {1,2,3,4,5};
    int *ptr;
    ptr = A;
    puts("++++++++++getarray+++++++++");
    printf("this is *ptr %d\n",*ptr);
    return ptr;
}


int main()    {
    int *p;
    p=getarray();
    puts("*******main******");
    printf("this is *p %d\n",*p);
    printf("this is p %p\n",p);
    funct(p);

    return 0;
}

这是控制台输出:

++++++++++getarray+++++
this is *ptr 1
*******main******
this is *p 1993969290
this is p 0028fec8
------Fucnt--------
this is p 0028fec8
this is *p 2686712

由于

0 个答案:

没有答案