Veröffentlicht 7. März 200619 j Hallo, ich habe ein Problem. Erstmal bin absoluter C++ Anfänger und stehe vor folgendem Problem: Ich muss eine Variable mit dem Typ "int" an eine Funktion übergeben die als Variablentyp "int *" hat. Der Compiler meckert logischerweise und ich habe keine Ahnung wie ich da nun vorgehen soll. Quellcodeauszug der relevant ist: XPLMNavRef NavRef1; int inFrequency = XPLMGetDatai(XPLMFindDataRef("sim/cockpit/radios/nav1_freq_hz")); NavRef1 = XPLMFindNavAid(NULL,NULL,NULL,NULL, inFrequency,xplm_Nav_ILS); Würd mich über eine Hilfe freuen und nicht sowas wie:"Lerne erstmal C++ - damit kann ich garnix anfangen... bin dabei es zu lernen, aber solche Probleme müssen auch gelöst werden...." Gruß, Daniel
7. März 200619 j dann mach int deineVar; int *ptr_auf_deineVar; ptr_auf_deineVar = &deineVar; und übergebe ptr_auf_deineVar an die Funktion p.s.: der relevante QCAuszug ist ein Scherz oder ?
7. März 200619 j oder direkt &deineVar übergeben Damit übergibst du nicht einfach den Wert deiner Variablen sondern die Adresse dieser, so dass die Funktion den Inhalt der Variablen ändern kann.
7. März 200619 j Hi, auch wenn du das nicht hören willst, aber bei C und C++ halte ich es für unmöglich, ohne Vorkenntnisse komplexe Programme zu "bearbeiten". Würd mich über eine Hilfe freuen und nicht sowas wie:"Lerne erstmal C++ - damit kann ich garnix anfangen... bin dabei es zu lernen, aber solche Probleme müssen auch gelöst werden...." Abgesehen davon, dass der gepostete Code in keinem Zusammenhang mit deinem Problem steht, solltest du schon wissen was du tust. Denn durch irgendwelches Rumgecaste mag der Code zwar fehlerfrei kompilieren, aber ob er dann auch tatsächlich das tut was du beabsichtigst darf bezweifelt werden.
7. März 200619 j Danke, das "&" war die Lösung. Nebenbei - den Quellcode habe ich so vom Hersteller der Software übernommen - natürlich habe ich einiges rausgelassen. Schon alleine aus Geheimschutzgründen. Fernerhin ist das nix komplexes und C Kenntnisse sind vorhanden, nur keine C++. Komplexe Programme würde ich auch nicht anpacken - aber da jeder gute Programmierer seine Programme testet, ist dein Satz fehlt am Platz bzgl. richtig compilieren und trotzdem fehlerhaft laufen. Achso - einzig alleine DER Quellcodeauszug steht in relevanz zu meinem Problem - alles andere läuft nämlich. Also vorsicht mit solchen Anschuldigungen - bissel Ahnung habe ich auch. So, fertig danke nochmal für die prompte Lösung
7. März 200619 j Danke, das "&" war die Lösung. Fernerhin ist das nix komplexes und C Kenntnisse sind vorhanden, nur keine C++. Ganz böser Fehler. Das komische "*" und das abermals witzige "&" oder wollen wir mal scherzhafterweise sagen die Pointer und Adressen sind elementare Dinge bei C ...
7. März 200619 j Sorry aber das hat nichts mit C++ zu tun. & ist einfach der Adressoperator und gehört zu den Basics genauso wie man den Unterschied zwischen int und int* kennen sollte...
7. März 200619 j komisch das wir das in 2 Jahren C nie gehabt haben *kopfkratz* ok ich kann kein C und int * - ach lassen wir das. Da fehlt dann wohl doch noch einiges, aber habe in 4 Jahren Berufsschule nie sowas gelernt *kopfkratz* naja, habe dafür in anderen Sprachen meine Vorzüge gefunden - nichts für ungut und sorry dann... kann euch bissel verstehen, war nur etwas angequakt das ihr sowas geschrieben habt, das kam so rüber wie: DU depp da drüben, kennst das netmals...
7. März 200619 j Hi, Achso - einzig alleine DER Quellcodeauszug steht in relevanz zu meinem Problem - alles andere läuft nämlich. nein, war er nicht. Also vorsicht mit solchen Anschuldigungen - bissel Ahnung habe ich auch. Ich auch, aber werds mir merken. DU depp da drüben, kennst das netmals... Naja, sind nunmal elementare Dinge in C, wie auch in C++. Nur solltest du vielleicht gutgemeinte Hinweise auch als solche annehmen und nicht so tun, als wären sie völlig fehl am Platze, denn das waren sie nicht. Und besser du stellst den Fehler fest als dein Chef, oder schlimmer noch, der Kunde, sofern das für einen gemacht wurde.
7. März 200619 j Mir egal, ich weiß das er im Bezug dazu stand, der rest ist mir wurscht. fertig, wenn das weiter eskaliert schließen bitte
7. März 200619 j rofl *das* ist die richtige Einstellung, da wünsch ich dir und deinen Kunden viel Spaß mit deinen weiteren Programmen
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.