アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人はmoriwaka -- Anonymous Coward
書込み禁止領域に書きたければ (スコア:1)
str[ 0 ] = 'x';
とか?
でも実際に動かしてみると、
Segmentation fault
だって。
アタクシだめぽ (スコア:1)
けど、とりあえず(ここ大事)ソースに書いてコンパイルしてみたところ
コンパイラさんは
警告: 代入が読み込み専用領域で行われました
で、実行させたら
セグメンテーション違反です
ですって。
マニヤックな解説 (スコア:2)
を
char *str = "afo";
としても結果は同じでした。
コンパイルで警告が出ないところは違いますが。
# コードとしてタチが悪いものの今回の現象が解りやすいのは後者かも知れない
で、この "afo" っていう文字列は「文字列定数」なのです。"afo"は"afo"として使わねばならず、"xfo"とは出来ません。もしそういう使い方をしたいなら、
static char const str[] = "afo";
char buff[ 4 ];
strncpy( buff, str, sizeof( buff ) );
buff[ 0 ] = 'x';
とします(書き換え可能な領域は別に用意する必要があり
すごいすごい! (スコア:1)
内容がつながりそうです!
(ビミョウな表現)
#.textとか.bssとかいうアレね
自分で解ってることを説明するのって難しいです、
それを日記のコメントでこんなに丁寧に(マニヤックに (笑))
教えていただけて
ああ私って幸せだなあ。ありがとうございます。