でセグメンテーションフォールトを取得私は小さなPROGを書いた:は、小さなCプログラム
1 #include<stdio.h>
2 main(){
3 char* str = "string";
4 *str = 'k';
5 printf("string is = %s\n",str);
6 }
このプログラムは、任意のエラーや警告なしでコンパイルが、私はそれを実行すると、それがセグメンテーションフォールトを与えます。私は3行目を次のように書き直しています:char str [] = "string";このプログラムは完璧に動作します。誰でも私に問題があることを教えてもらえますか? 3行目を書くこの2つの異なる方法の違いは何ですか?どんな助けでも大歓迎です。ありがとう。
https://www.securecoding.cert.org/confluence/display/seccode/STR30-C.+Do+not+attempt+to+modify+string+literals –