深拷贝与浅拷贝
浅拷贝:多个指针指向同一段内存(生活中的共享)
字符串常量就是浅拷贝
字符串常量就是浅拷贝
特点:不能修改
#include<stdio.h>
//浅拷贝
int main()
{
char buf[100];
char *str[3];//指针数组
int i;
for(i = 0;i < 3;i++)
{
scanf("%s",buf);
str[i] = buf;
}
for(i = 0;i < 3;i++)
{
printf("%s\n",str[i]);
}
return 0;
}
深拷贝:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//深拷贝
int main()
{
char buf[100];
char *str[3];
int i;
for(i = 0;i < sizeof(str)/sizeof(str[0]);i++)
{
scanf("%s",buf);
str[i] = (char *)malloc(strlen(buf)+1);
strcpy(str[1],buf);
}
for(i = 0;i < 3;i++)
{
printf("%s\n",str[i]);
}
return 0;
}