Daten in ein Array speichern
-
Hi,
ich habe ein Problem. Ich habe ein dynamisches Array und da möchte ich den ItemIndex reinschreiben von dem Item auf das ich geklickt habe. Mein Code sieht so aus:
void __fastcall TForm1::CheckListBox1ClickCheck(TObject *Sender) { for(int i = 0; i < ausw.Length; i++) { if(strcmp(IntToStr(ausw[i]).c_str(),"") == 0) break; strcpy(ausw[i], IntToStr(CheckListBox1->ItemIndex).c_str()); ausw[i] = IntToStr(CheckListBox1->ItemIndex).c_str(); break; } }
Das Array habe ich so erzeugt:
DynamicArray<char*> ausw;Ich bekomme immer wenn ich klicke Zugriffsverletzungen. Was mache ich falsch?
-
Original erstellt von <Dieter>:
Ich bekomme immer wenn ich klicke Zugriffsverletzungen.In welcher Zeile?
-
In keiner Zeile, sondern sobald ich ein Elment anklicke. Also die Funktion aufrufe...
-
In der Funktion gibt's ja wohl mehr als eine Zeile Code. Also nimm dir den Debugger und gehe da zeilenweise durch, um festzustellen, wo genau der Fehler verursacht wird.
-
Original erstellt von <Dieter>:
**strcpy(ausw[i], IntToStr(CheckListBox1->ItemIndex).c_str());
**wo ist der reservierte speicher?
-
Ja an dem Speicher kanns wohl liegen. Aber ich bin noch blutiger Anfänger. Wie reservieren ich denn Speicher für ein dynamisches Array?
-
flosko:
Vielen Danke für das Unterlaufen meiner pädagogischen Bemühungen.Dieter:
Den Speicher musst du nicht für dass Array sondern für dessen Elemente reservieren. Ein Beispiel findest du u.a. in der FAQ unter "Komponenten".In diesem Zusammenhang wäre es vielleicht angebracht, sich erstmal mit den C/C++-Grundlagen zu beschäftigen, anstatt gleich mit dem BCB einfach drauflos zu programmieren.