[英]Modifying value of char pointer in c produces segfault
以下代碼在我的系統上產生分段錯誤。 我不知道為什么。 任何幫助,將不勝感激。
#include<stdio.h>
int main() {
char * a = "abc";
*a = 'c';
printf("%c\n", *a);
return 0;
}
該標准在§J.2中明確將此列為未定義的行為:
—程序嘗試修改字符串文字(6.4.5)
如果要將其復制到本地數組,請執行以下操作:
char a[] = "abc";
a
是堆棧上的一個數組,您可以自由修改它。
嘗試修改字符串文字會導致未定義的行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.