Moin moin,
ich habe nen Problem bei der Übergabe eines Arrays an eine Funktion.
Der Code dazu schaut zur Zeit so aus:
(Klassen vom CBuilder hab ich aus dem Code der Übersichtlichkeit wegen entfernt)
Control.h
Control.cpp
Hauptdatei.cpp
Meine Fragen bezüglich des Codes sind nun:
Wurde das Struct Array richtig an die Funktion LoadData übergeben?
- sprich: Besitzt die Funktion die Adressen von dem originalen Struct-Objekt und schreibt auch in dieses Objekt ?
Muss ich in der Funktion LoadData den Pointer auf deraStruct noch irgendwie NULLen und entfernen?
Muss ich das anlegen des Objekts von dem Struct in der Hauptdatei.cpp vornehmen oder kann ich das gleich in die Control.h hineinschrieben, damit allen ein globales Objekt des Structs verwenden?
- wenn ich das jedoch mache, sagt mir der Compiler, dass die Objekte Arrays zwei Mal erzeugt werden, was ich nicht verstehe
Greez Pixtar
ich habe nen Problem bei der Übergabe eines Arrays an eine Funktion.
Der Code dazu schaut zur Zeit so aus:
(Klassen vom CBuilder hab ich aus dem Code der Übersichtlichkeit wegen entfernt)
Control.h
Code:
struct DataStruct{ int Nummer; char Name[20]; }; int LoadData(char PPath[100], struct DataStruct Cache[]);
Code:
#include "Control.h" #include <fstream> #include <iostream> using namespace std; int LoadData(char PPath[100], struct DataStruct Cache[]){ ifstream DATA; int A = 0; DATA.open(PPath, ios::in | ios::binary ); if(DATA){ while( !DATA.eof() ){ FILE.read((char*)&Cache[A], sizeof(Cache[A]) ); if(!DATA.eof()){ A++; } } } DATA.close(); return A; }
Code:
#include "Control.h" int Var1= 1; AnsiString DataPath = "Datacontrol.dat" DataStruct Arrays[300]; int main(){ Var1 = LoadData( DataPath.c_str(), Arrays ); for(int H = 0; H < Var1; H++){ Memo1->Lines->Add( Arrays[H].Name ); } return 0; }
Wurde das Struct Array richtig an die Funktion LoadData übergeben?
- sprich: Besitzt die Funktion die Adressen von dem originalen Struct-Objekt und schreibt auch in dieses Objekt ?
Muss ich in der Funktion LoadData den Pointer auf deraStruct noch irgendwie NULLen und entfernen?
Muss ich das anlegen des Objekts von dem Struct in der Hauptdatei.cpp vornehmen oder kann ich das gleich in die Control.h hineinschrieben, damit allen ein globales Objekt des Structs verwenden?
- wenn ich das jedoch mache, sagt mir der Compiler, dass die Objekte Arrays zwei Mal erzeugt werden, was ich nicht verstehe
Greez Pixtar
Comment