结构体指针涉及到的问题

xiaoxiao2021-02-28  150

#include<stdio.h> #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分配的地址)

所以如果不想这样,就只能给每一个结构里的变量进行复制。

转载请注明原文地址: https://www.6miu.com/read-33524.html

最新回复(0)