文章出處

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

  


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()


    留言列表 留言列表

    發表留言