文章出處
文章列表
在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 }
文章列表
全站熱搜
留言列表