C言語なら俺に聞け(入門編)Part 123
■ このスレッドは過去ログ倉庫に格納されています
0065デフォルトの名無しさん
2013/12/16(月) 21:06:55.19簡潔にいえば、int a[10]と宣言して値を取得するときのa[0],a[1]…a[n]は、「配列のn個目の要素を取り出せ」という意味ではなく、
「アドレスaに4nを加えたアドレスにアクセスせよ」という意味だから(sizeof(int) = 4のとき)
例えばint a[10]に対してaを1000番地とすると、配列のために確保された領域は1000番地〜1039番地
このときa[10]=1040番地はaのために確保された領域ではないが、存在はするのでアクセスできる
当然この1040番地には何のデータが入ってるか分からないし、いつ書き換えられるのかもわからないので非常に危険
まあとりあえずポインタを勉強してみようぜ
■ このスレッドは過去ログ倉庫に格納されています