NULL + Arrays + Zugriff + Freien Platz Finden
-
Hi Leute,
ich glaub mich hat die Java Seuche gepackt und bin deswegen nicht in der Lage umzudenken.
Ich will mit ca. folgendem Code den Platz in einem Array finden der noch nich initialisiert wurde.
//deklaration: std::string Tech[SUPPORTED_TECH_AMOUNT]; if(info.find("Tech=") != std::string::npos) for(int tech=0; tech<SUPPORTED_TECH_AMOUNT;tech++) if(Tech[tech] == NULL){ Tech[tech] = s.substr(s.find("=")+1, 1024); break; }später möchte ich dann wieder auf die Klassenvariablen zugreifen. Das mache ich so.
for(int tech=0;tech<SUPPORTED_TECH_AMOUNT;tech++) if(Tech[tech] != NULL) list->Add("\tTech="+AnsiString(Tech[tech].c_str()));nur leider krieg ich so immer Zugriffsverletzungen.
Wie würde den sowas richtigerweise aussehen?
P.S:
Strings könnte ich natürlich mit "" Initalisieren und somit abprüfen aber bei großen arrays ist das imo unnötig aufwendig und zusätzlich ich will dieselbe Prozedur auch auf Integers anwenden und da gibt es keinen geeigneten Init-Wert.
Herzlichsten Dank
P.P.S:
Habs igendwie versucht so zu lösen aber das scheint leider auch nicht zu klappen.
//deklaration: std::string Tech[SUPPORTED_TECH_AMOUNT]; if(info.find("Tech=") != std::string::npos) for(int tech=0; tech<SUPPORTED_TECH_AMOUNT;tech++) if(&Tech[tech]){ Tech[tech] = s.substr(s.find("=")+1, 1024); break; }for(int tech=0;tech<SUPPORTED_TECH_AMOUNT;tech++) if(&Tech[tech]) list->Add("\tTech="+AnsiString(Tech[tech].c_str()));
-
Hi,
ich lese etwas von Zugriffsverletzungen. Auf Anhieb kann ich in Deinem Code keine finden (bin vielleicht zu blind
)Wo (in welcher Zeile des zitierten Codes) findet die ZV statt?
Meckert der Compiler, oder findet die ZV zur Laufzeit statt?Viele Grüße,
Christian