2012-04-13 56 views
0

サイズ1の配列を宣言し、5個の要素を格納してから取り出すことは可能ですか?配列のサイズがno。それに格納されている要素の数

私は配列arr[1]を宣言し、その中に5つの要素を格納したコードを試してみます。実際には5つの要素を格納することができました!どうだった?

+2

プログラミング言語は何ですか? –

+0

プログラミング言語によって異なります。だから決定的な答えを与えることができません。 –

+0

彼は確かにCについて話していると思う。 – Surya

答えて

2

これはC(またはC++)である場合、あなたは非常に簡単に配列をのための大きさよりも多くの要素を格納することができます:

そう
#include <stdio.h> 

int main (void) { 
    int x = 0; 
    int a[1]; // so that a[0] is the only valid element 
    a[1] = 7; // write beyond end of array 

    printf ("x=%d, &a[0]=%p, &a[1]=%p, &x=%p\n", x, &(a[0]), &(a[1]), &x); 
    return 1; 
} 

を、しかし、おそらく他のいくつかのを上書きし、未定義の動作につながります情報の一部であり、実際には良い考えではありません。私のシステムで

、印刷物上でそのコード:

x=7, &a[0]=0xbf9bb638, &a[1]=0xbf9bb63c, &x=0xbf9bb63c 

私はゼロにxを設定し、それを明示的に変更したことがないという事実にもかかわらず。これは、配列の最後を超える書き込みが影響を受けているからです(a[1]xの2つの同一アドレスからわかるように)。

関連する問題