use Mosche;
=== cut ===
#include <stdio.h>
int main() {
short a[10];
int b = 5;
a[b] = 42;
printf("%d \n", b[a]);
return 0;
}
=== cut ===
Kommentare? Meinungen? ;)
Hmm - ich bin kein grosser C-Programmierer (lerne nur ein bißchen an C++ herum), aber schon das reicht mir, um zu sehen, das dieses Codeprogramm _eigentlich_ nicht laufen sollte. Umso erstaunlicher, dass der gcc es selbst mit -Wall ohne Fehlermeldung kompiliert und auch noch das "richtige" *falsche* Ergebnis bei raus kommt.
Da ich mich mit C Internas kaum auskenne, tippe ich mal darauf, dass der gcc (vielleicht noch andere Compiler) b[a] bei nicht vorhandensein von dem Array b automatisch auf a[b] *zeigt*. Aber wie gesagt, ich kenne mich hier kaum aus, bin auf die Lösung gespannt.
Ist das Compiler-Verhalten hier ein Fehler?
use Tschoe qw(Matti);