Frage zum Array
-
Hallo zusammen,
ich habe ein Miniprogramm geschrieben, bei welchem ein Array während der Laufzeit erstellt und gefüllt wird. Ich möchte, dass der Inhalt des Arrays auf einem StringGrid erscheint. Dazu habe ich die Methode "MinMax" erstellt.Das Programm funktioniert auch einwandfrei, doch ist mir aufgefallen, dass wenn ich die Variabel i, mit der das StringGrid gefüllt wird; höher als die Größe des Arrays ist, so erscheinen irgendwelche komischen Kommazahlen. Das Array müsste eigentlich leer sein und es dürfte nichts angezeigt werden. Mich würde interessieren, warum dies so ist.
Hier ist der Quelltext:
void __fastcall TNumber::Rechnen () { int array__inkr = -1; array = new float [9]; for (int i=1; i<10; i++) { array__inkr++; array[array__inkr] = i*10; } MinMax (array,Form1->StringGrid1); } //--------------------------------------------------------------------------- void __fastcall TNumber::MinMax (float *Array, TStringGrid *grid1) { for (int i=0; i<9; i++) // wenn ich i erhöhe, dann erscheinen komische Zahlen { // Warum??? grid1->Cells[0][i] = Array[i]; } } //---------------------------------------------------------------------------
Vielen Dank
lg, freakC++
-
Hallo
Wenn du ein Array mit der Größe x mit einem Index größer gleich x ansprichst, liest du fehlerhafterweise Elemente aus die gar nicht mehr in dem Array drin sind. Da kann alles mögliche passieren, zum Beispiel Phantomwerte. Oder dein Programm stürzt ab.
bis bald
akari
-
Alles klar. Dann weiß ich bescheid!!
Vielen Dank
lg, freakC++