结构体,深浅拷贝
1 #include<stdio.h> 2 #include<stdlib.h> 3 4 struct MyStruct 5 { 6 char *p; 7 int num; 8 }; 9 10 //对于数据来说,深浅拷贝一样,对于指针,浅拷贝是拷贝地址,深拷贝拷贝内存内容 11 void main() 12 { 13 struct MyStruct my1; 14 my1.p = malloc(30); 15 my1.num = 30; 16 strcpy(my1.p,"Hello World"); 17 18 struct MyStruct my2; 19 my2 = my1; // 浅拷贝 赋值指针的地址 20 free(my1.p);// 浅拷贝时 my1.p 内存释放对my2.p有影响 21 22 23 my2.p = malloc(30); 24 strcpy(my2.p ,my1.p);// 深拷贝 重新拷贝内存 25 //free(my1.p);// 深拷贝时 my1.p 内存释放对my2.p有影响 26 27 printf("my1= %s , my2= %s\n",my1.p,my2.p); 28 29 system("pause"); 30 }
长风破浪会有时,直挂云帆济沧海
posted on 2015-05-17 12:53 Dragon-wuxl 阅读(125) 评论(0) 收藏 举报
浙公网安备 33010602011771号