在C语言学习005:不能修改的字符串中我们知道字符串是存储在常量区域的,将它赋值给数组实际是将常量区的字符串副本拷贝到栈内存中,如果将这个数组赋值给指针,我们可以改变数组中的元素,就像下面那样

1 int main(){
2     char s[]="hello c";
3     char* temp=s;
4     temp[0]='a';
5     temp[1]='b';
6     printf("%s\n",s);    
7     return 0;
8 }

C语言学习018:strdup复制字符串数组  

  但是现在我们不想让指针可以修改字符串数组的中的元素,而又可以得到字符串中的元素,那么我么需要再拷贝一份字符串数组的元素的副本,然后把地址给到指针,就可以通过strdup实现

1 int main(){
2     char s[]="hello c";
3     char* temp=strdup(s);
4     temp[0]='a';
5     temp[1]='b';
6     printf("%s\n",s);    
7     return 0;
8 }

C语言学习018:strdup复制字符串数组

  

相关文章:

  • 2022-12-23
  • 2021-04-19
  • 2021-04-07
  • 2022-12-23
  • 2021-08-30
  • 2021-11-29
  • 2021-11-29
  • 2022-12-23
猜你喜欢
  • 2021-11-29
  • 2021-11-29
  • 2022-12-23
  • 2021-11-29
  • 2021-11-29
  • 2021-06-23
  • 2022-12-23
相关资源
相似解决方案