#include<stdlib.h>
typedef struct mystruct
{
int a;
}T,*ptr;
int main()
{
ptr A=NULL;//不只是結構體指針,任何指針都應該加上這個NULL,用的時候再爲這個指針提供空間。
ptr B=NULL;
A=(ptr)malloc(sizeof(T));//分配空間
A-> a =5;
/*-------------------------------------*/
//接下來說下一個問題就是:a=b這樣會發什麼。
B=(ptr)malloc(sizeof(T)) ;//分配空間
B=A;
printf("A:%d B:%d\n",A->a,B->a);
A->a=3;
printf("A:%d B:%d\n",A->a,B->a);
B->a=7;
printf("A:%d B:%d\n",A->a,B->a);
}
下圖是結果,可以發現B,A操作的是一片相同的地址,(即忽略了給B分配的地址)
所以如果不想這樣,就只能給每一個結構裏的變量進行復制。