Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Ein paar Pointer-Fragen...

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.05.2004, 11:39 Uhr
Unwissende
...die wirklich Unwissende 8-)


Also, ich hab folgenden Quelltext:

C++:

void msp2_brd::Info(HANDLE* hwd, UINT32* adr, UINT32* rng)
{
             *hwd = pci_hd;
    *adr = (UINT32) base_address;
    *rng = range;
}




"Info" wird hier aufgerufen:

C++:
board_2[mod_nr].Info(&hWD, &val, &size);



Nun habe ich ja die Pointer "hWD" und "size". Ich hab jedoch noch 2 "globale" Pointer "dez_adr" und "file_pointer", diese Pointer möchte ich auf die Adressen zeigen lassen, wo hWD bzw. size draufzeigen.......?!?!?!
Kann ich das einfach SO machen:

C++:
hWD=dez_adr;
size=file_pointer;


???
Irgendwie komm ich mit dem &hWD und &size nicht klar....
--
__________________________________
Unwissenheit ist vorläufig- Dummheit für immer
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.05.2004, 11:47 Uhr
Pablo
Supertux
(Operator)


Eigentlich schon. Wenn du sowas machst, dann sagst du: HWD zeige auf die Stelle, aug die dez_adr zeigt. Die Frage ist, ob du den Inhalt (ich meine nicht den Inhlat der gezeigte Stelle) von hwd ändern kannst.

Was für Fehler bekommst du oder womit kommst du nicht weiter?

Zitat:
Unwissende postete
Nun habe ich ja die Pointer "hWD" und "size". Ich hab jedoch noch 2 "globale" Pointer "dez_adr" und "file_pointer", diese Pointer möchte ich auf die Adressen zeigen lassen, wo hWD bzw. size draufzeigen.......?!?!?!



Ich würde sann sagen:

C++:
dez_adr= hWD;
file_pointer=size;


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 13.05.2004 um 11:50 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.05.2004, 12:13 Uhr
ao

(Operator)



Zitat:
Unwissende postete

C++:

void msp2_brd::Info(HANDLE* hwd, UINT32* adr, UINT32* rng)
{
             *hwd = pci_hd;
    *adr = (UINT32) base_address;
    *rng = range;
}





C++:
board_2[mod_nr].Info(&hWD, &val, &size);




Wenn das so glatt kompiliert, dann sind hWD und size keine Pointer, sondern ein HANDLE bzw. ein UINT32. Du benutzt die Info-Funktion, um hWD, val und size mit Daten aus der Board-Klasse zu belegen, richtig?


Zitat:

Kann ich das einfach SO machen:

C++:
hWD=dez_adr;
size=file_pointer;




Wenn dez_adr und file_pointer tatsächlich Zeiger sind, müsste das Compilerfehler geben.

Du willst hier diese Daten überschreiben mit etwas, das in dez_adr bzw. in file_pointer steht? Versteh ich nicht, wozu hast du sie dann erst mit Info() abgeholt? Was steht denn in diesen Variablen drin? Was soll danach passieren?

Das hWD scheint ein Geräte-Handle zu sein, das eigentlich nur im Zusammenhang mit irgendwelchen Windows-API-Funktionen Sinn macht. Das lässt man sich vom Betriebssystem geben und macht dann was damit, z.B. Gerätedaten abfragen oder irgendwelche Aktionen auf dem Gerät anstoßen.

Und size = file_pointer klingt auch irgendwie suspekt, das passt nicht zusammen. Das ist so wie Länge = 25 Liter.


Zitat:
Irgendwie komm ich mit dem &hWD und &size nicht klar....

Der &-Operator bildet die Speicheradresse der Variablen. Indem du die Adresse der Variablen an eine Funktion (Info) übergibst und die Funktion an diese Adresse etwas schreibt, kannst du Daten aus der Funktion nach außen transportieren (call-by-reference-Prinzip).

Aber was anderes: Ich hab im Gedächtnis, dass es um Speichertest geht. Fragst du diese Daten aus der Board-Klasse ab, um die Speichertest-Funktion damit zu füttern? Warum machst du den Speichertest nicht zu einer Methode der Board-Klasse, dann könnte das Board seinen eigenen Speicher testen?

Das würde es dir ersparen, diese Innereien kreuz und quer durchs Programm zu transportieren; so was macht nämlich Probleme, wenn die einmal rausgereichten Daten irgendwann nicht mehr gültig sind. Wenn die Board-Klasse das alles selbst machen würde, wüsste sie immer genau, welche Daten aktuell sind; ein Externer hat so gut wie keine Chance, das festzustellen.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: