首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C 語言 strupr 修改字符串常量導致崩潰

     編輯:程式設計疑難解答

錯誤代碼

printf("%s\n", strupr("fgdfgab"));

原因

字符串字面量 `"fgdfgab"` 存儲在**只讀數據段**,`strupr` 試圖**原地修改**為大寫,觸發**段錯誤/訪問違規**。

修正

char s[100] = "fgdfgab"; // 分配可寫數組
printf("%s\n", strupr(s));

或用 `strdup` 複製到堆內存(記得 `free`)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved