verdächtiger quellcode
-
hi, ist das valider code? es compiliert und gibt keinen segfault (gcc), aber ist das korrekt?
int count; int test() { int a[count]; a[21564] = 0; } int main() { count = 22000; test(); return 0; }
-
ich kann mir nicht vorstellen, dass das kompiliert, wegen dem array mit nicht-konstanter Größenangabe.
Aber selbst wenn es kompiliert, warum sollte es einen segfault geben?
vielleicht optimiert de rgcc einfach dein programm weg, es macht schließlich rein gar nix.
-
vlad_tepesch schrieb:
ich kann mir nicht vorstellen, dass das kompiliert, wegen dem array mit nicht-konstanter Größenangabe.
Ist in C99 kein Problem.
-
machen das schon compiler?
ich meine der standard ist noch nicht mal 10 Jahre alt.der vcc kanns wohl noch nicht, und ich bilde ein auf einer Komatibilitätsliste gesehen zu haben, dass der gcc das auch nicht kann.
edit:
hier der link:
http://gcc.gnu.org/c99status.html
-
Man braucht ja nicht unbedingt das volle Programm, was VLAs angeht, um dieses Programm zu übersetzen.
-
vlad_tepesch schrieb:
ich kann mir nicht vorstellen, dass das kompiliert, wegen dem array mit nicht-konstanter Größenangabe.
Aber selbst wenn es kompiliert, warum sollte es einen segfault geben?
vielleicht optimiert de rgcc einfach dein programm weg, es macht schließlich rein gar nix.
wenn ich count auf 2200 setze, dann gibt es einen segfault.
-
der code ist visual c# glaub ich, da geht das
-
skarabin schrieb:
der code ist visual c# glaub ich, da geht das
Wurde schon gesagt, dass der Code C99 ist?
-
Solange man nicht explicit C89 beim gcc, übersetzt der das problemlos.
Ach übrigens, der Code ist C99...