程序代码:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
struct data{int *p;} a, b;
a.p = (int *)malloc(sizeof(int));
*(a.p) = 0;
b = a;
printf("a.p = %p\n", a.p);
printf("a.p = %d\n", *(a.p));
printf("b.p = %p\n", b.p);
printf("b.p = %d\n", *(b.p));
*(b.p) = 1;
printf("a.p = %p\n", a.p);
printf("a.p = %d\n", *(a.p));
printf("b.p = %p\n", b.p);
printf("b.p = %d\n", *(b.p));
free(b.p);
printf("a.p = %p\n", a.p);
printf("a.p = %d\n", *(a.p));
printf("b.p = %p\n", b.p);
printf("b.p = %d\n", *(b.p));
*(b.p) = 1;
printf("a.p = %p\n", a.p);
printf("a.p = %d\n", *(a.p));
printf("b.p = %p\n", b.p);
printf("b.p = %d\n", *(b.p));
b.p = NULL;
printf("a.p = %p\n", a.p);
printf("a.p = %d\n", *(a.p));
printf("b.p = %p\n", b.p);
printf("b.p = %d\n", *(b.p));
*(b.p) = 1;
printf("a.p = %p\n", a.p);
printf("a.p = %d\n", *(a.p));
printf("b.p = %p\n", b.p);
printf("b.p = %d\n", *(b.p));
return 0;
}