Wenn diese C (oder C++) ist, können Sie ganz einfach mehr Elemente speichern, als die Anordnung ist so bemessen:
#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;
}
so tut, führt jedoch zu einem undefinierten Verhalten, wahrscheinlich einige anderen überschreiben Stück Information, und ist nicht wirklich eine gute Idee.
Auf meinem System, dass obiger Code druckt:
x=7, &a[0]=0xbf9bb638, &a[1]=0xbf9bb63c, &x=0xbf9bb63c
trotz der Tatsache, ich x
auf Null gesetzt und nie geändert explizit. Dies liegt daran, dass das Schreiben über das Ende des Arrays hinaus betroffen ist (wie Sie an den zwei identischen Adressen für a[1]
und x
sehen können).
Was ist Ihre Programmiersprache? –
Hängt von der Programmiersprache ab. So unfähig, eine definitive Antwort zu geben. –
Ich denke, dass er über C spricht. Sicher. – Surya