トップページ > プログラム > 2015年02月01日 > fuhak8XW

書き込み順位&時間帯一覧

14 位/196 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000001210000000004



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【初心者歓迎】C/C++室 Ver.94【環境依存OK】 [転載禁止]©2ch.net

書き込みレス一覧

【初心者歓迎】C/C++室 Ver.94【環境依存OK】 [転載禁止]©2ch.net
798 :デフォルトの名無しさん[sage]:2015/02/01(日) 12:36:47.48 ID:fuhak8XW
char a[1];

a[0]='A';
a[1]='\0';

ってやると、 A \0 \0 って3文字分メモリを取って、隣接する配列とかがおかしくなるんですが何でですか。
【初心者歓迎】C/C++室 Ver.94【環境依存OK】 [転載禁止]©2ch.net
804 :デフォルトの名無しさん[sage]:2015/02/01(日) 13:13:21.84 ID:fuhak8XW
char a[1] ;
strcpy(a,"A");

a[0] a[1]
ってすると、A \0 って領域が取られると思ってたので、
a[1] に '\0' を直接入れても変わらないと思ってたのですが違うんですかね。
 
【初心者歓迎】C/C++室 Ver.94【環境依存OK】 [転載禁止]©2ch.net
807 :デフォルトの名無しさん[sage]:2015/02/01(日) 13:34:48.58 ID:fuhak8XW
char a[2] ; strcpy(a,"A");

だったら A \0 ってなるが、

char a[1] ; strcpy(a,"A");

だと A しか格納されないって事ですかね。この場合終端文字が無いって事ですかね。


 
【初心者歓迎】C/C++室 Ver.94【環境依存OK】 [転載禁止]©2ch.net
811 :デフォルトの名無しさん[sage]:2015/02/01(日) 14:34:13.41 ID:fuhak8XW
char a[1] ; 
strcpy(a,"A");で

a[0] にA その次に \0 が入る。 a[1] = '\0' でも同じ事。

文字列としてaを扱った場合 aの隣の領域に変更が無ければ A\0の文字列として扱える。

ただし a[0] の隣に \0 を入れた時点で、
その領域を使ってた変数などが先頭が\0になって壊れると言う事ですね。




 


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。