簡體   English   中英

在C中修改char指針的值會產生segfault

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM