-2
struct a {
   int *p;
   int c;
} a1,a2;

void fun(struct a);

int main()
{

    a1.p=malloc(4);
    *(a1.p)=10;
    a1.c=20;

    fun(a1);
    printf("%d\n",*(a1.p));
    return 0;
}

void fun(struct a temp)
{   
    a2=temp;
    *(a2.p)=30;
    printf("%d\n",*(a2.p));
}

私はこのようなプログラムを持っていますが、私の質問は.... *(a2.p)=30; を割り当てるときです。それは *(a1.p) の値に影響を与えます どのように回避しますか?つまり、*(a2.p) の値を変更しましたが、*(a1.p) の値に影響を与えたくありません。 ? 私に提案してください

前もって感謝します

4

1 に答える 1