程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言學習018:strdup復制字符串數組,018strdup

C語言學習018:strdup復制字符串數組,018strdup

編輯:關於C語言

C語言學習018:strdup復制字符串數組,018strdup


  在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 }

  

  但是現在我們不想讓指針可以修改字符串數組的中的元素,而又可以得到字符串中的元素,那麼我麼需要再拷貝一份字符串數組的元素的副本,然後把地址給到指針,就可以通過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 }

  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved