Fehler im VS 6.0?
-
Hallo Leute,
mein Problem ist das das VS immer abstürzt!?
Macht mal folgendes:
Erstellt ein neues Konsolenprojekt mit main Funktion.
Kopiert folgenden Code in das Projekt:#include "stdafx.h" void reverseTable() { double h=0; int j=0; int i=0; double delta=0, abweichung=0; double d[]={0.1, 0.25, 0.5, 0.75, 1, 1.5, 2, 4, 6, 8, 10, 15, 20, 30, 40, 50, 60, 80, 100, 120, 150, 200, 300, 400, 500}; double e[]={0, 100, 192, 270, 300, 338, 383, 417, 466, 503, 601, 669, 719, 760, 838, 906, 1000, 1086, 1100, 1146, 1204, 1293, 1399, 1464, 1500, 1548, 1600, 1700, 1743, 1800, 1900, 2000, 2100, 2200, 2300, 2400, 2500, 2584, 2617, 2645, 2647, 2653, 2662, 2676, 2695, 2709, 2740, 2745, 2763, 2766, 2774, 2782, 2789, 2793, 2807, 2812, 2815, 2831, 2900, 3000, 3100, 3200, 3300, 3400, 3500, 3600, 3700, 3800, 3900, 4000, 4100, 4200, 4300, 4400}; } int main(int argc, char* argv[]){ reverseTable(); return 0; }Geht mit F11 durch das Projekt. Ihr werdet sehen das der Debugger in reverseTable abstürzt. Ist das normal? Hattet Ihr schon ähnlich schräge Fehler?
Mike
-
So spontan würde ich mal sagen, das du die werte dem array falsch zuweist.
d[] ist nämlich das selbe wie d[0], was heißt das du hiermit versuchst, 25 werte aufeinmal einer einzigen adresse (nämlich dem ersten element des arrays) zuzuweisen, welches nunmal unmöglich ist und deinen Compiler zum absturz bringt.double d[]={0.1, 0.25, 0.5, 0.75, 1, 1.5, 2, 4, 6, 8, 10, 15, 20, 30, 40, 50, 60, 80, 100, 120, 150, 200, 300, 400, 500};Ich habe den VC++ Compiler gerade nicht installiert, da ich Windows gleich neu hochziehen werde, von daher kann ich es nicht ausprobieren, aber versuche es mal so:
double d[24]={0.1, 0.25, 0.5, 0.75, 1, 1.5, 2, 4, 6, 8, 10, 15, 20, 30, 40, 50, 60, 80, 100, 120, 150, 200, 300, 400, 500};
-
@Perner die Syntax ist richtig. Der Kompiler errechnet wie groß das Array sein muß. Eine Zahl braucht nicht angegeben werden. Und wenn ich es tue passiert der Fehler immer noch.
Hat jemand eine Idee woran das liegt? Früher (beim gcc) hat diese Art der Variableninitialisierung funktioniert...
-
Hallo Mike,
das dürfte an den Compiler-Optionen liegen (/Ze einschalten), ich suche aber auch noch nach einer Möglichkeit das zu tun, die MSDN ist so unverständlich zu diesem Problem.
MarioS
