globale variable in funtion deklariern
-
Hi zusammen
ich hab folgendes problem ich will inerhalb einer funktion eine neue variable deklarieren. möglich nicht möglich weis ich nicht so recht zumindest hab ich da keinen weg bis jezt gefunden
das ist mein programm code
{ DWORD Zahl; memcpy((void*)&Zahl,(void*)((DWORD)wxeasg2+3),4); char Zahl[255]={0}; memcpy((void*)&Buchstabe,(void*)((DWORD)wxeasg2+7),16); }wenn ich es jetz so mache das ich ein array anlege und als index den buchstaben hab geht das nicht da man da nur zahlen nehmen kann. Die Zahl die da rausgefunden wird als index zu nehmen funktioniert wunderbar.
{ DWORD Zahl; memcpy((void*)&Zahl,(void*)((DWORD)wxeasg2+3),4); char Zahl[255]={0}; memcpy((void*)&Buchstaben,(void*)((DWORD)wxeasg2+7),16); Var[Zahl] = Buchstaben }jedoch würde ich gerne den Buchstaben der da gefunden wird als index nehmen.
ist das möglich? btw ne andere möglichkeit das ich das irgendwie unter dem namen abspeichern kann um die zahl abzurufen in einer anderen funktion?
-
Wenn ich dich recht verstehe, willst du "sprechende" Indizes für deine Arrays. Da semantisch letztendlich aber nur Zahlen erlaubt sind, brauchst du eine Zuordnung.
Evtl. hilft dir das:#include <iostream> using namespace std; namespace Arrays { enum index {null, eins, zwei, drei, vier}; } int main() { int arr[] = {0,1,2,3,4}; cout<<arr[Arrays::null]<<endl; cout<<arr[Arrays::eins]<<endl; cout<<arr[Arrays::zwei]<<endl; cout<<arr[Arrays::drei]<<endl; cout<<arr[Arrays::vier]<<endl; }
-
Auf normale Arrays kannst du nur per Zahlenindex zugreifen. Du suchst aber eher etwas, wie die std::map.
#include <map> ... std::map<char,int> m; m.insert ( std::make_pair<char,int>('a',1) ); m.insert ( std::make_pair<char,int>('b',2) ); m.insert ( std::make_pair<char,int>('c',3) ); m.insert ( std::make_pair<char,int>('d',4) );Referenz gibts hier:
http://www.cplusplus.com/reference/stl/map/
-
die idee wurd mir von meinem lehrer vorgeschlagen jedoch ist mein problem das ich die nicht manuel anlegen kann da ich die "Buchstaben" selbst noch nicht kenne btw die buchstaben kombinationen.
diese werden ja erst durch die funktion
char Zahl[255]={0}; memcpy((void*)&Buchstabe,(void*)((DWORD)wxeasg2+7),16);ausgelesen.
danke werde ich mich mal reinzulesen versuchen
-
Dein Lehrer hat aber Null ahnung.
-
lehrer schrieb:
Dein Lehrer hat aber Null ahnung.
Da gebe ich dir Recht, aber wir sollten auch erstmal klären ob der OP wirklich C++ oder C meint... Den an seinen Code sieht aber auch gar nichts nach ersteren aus... (Und wenn es C++ sein soll, sollte man dem Lehrer mal mächtig die Schulbank drücken lassen...).