JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=a923e9682f617e523fefb0f936bde6e6Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Zeigerfrage

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Mat
Senior JLI'ler


Alter: 36
Anmeldedatum: 17.09.2005
Beiträge: 205
Wohnort: Koblenz
Medaillen: Keine

BeitragVerfasst am: 10.05.2006, 19:45    Titel: Zeigerfrage Antworten mit Zitat

Hey, malwieder eine Grundverständnisfrage .. abr wer nicht fragt bleibt dumm oder Wink

Also, wenn ich eine Funktion wie folgt aufrufe:

CPP:
   MENUITEMINFO *ItemInfo;
      InsertMenuItem(     
            hMenu,
            0, //UINT uItem,
            true, //BOOL fByPosition,
            ItemInfo);

kommt eine Fehlermeldung.

So funktioniert sie jedoch:

CPP:
   MENUITEMINFO ItemInfo;
      InsertMenuItem(     
            hMenu,
            0, //UINT uItem,
            true, //BOOL fByPosition,
            &ItemInfo);


Aber ist das für die Funktion nicht absolut irrelevant ?
Der Speicher wird doch reserviert, und ob sie jetzt direkt über die Adressvariable (den Zeiger) oder über eine Parametervariable auf den Speicherbereich zugreift, dürfte doch keine Rolle spielen- aber anscheinend doch ... oO !?
_________________
- - - - - - - - - - - - - - - - - - - -
-> http://www.sea-productions.de
-> http://www.krawall.de
- - - - - - - - - - - - - - - - - - - -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
GreveN
JLI Master


Alter: 38
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 10.05.2006, 19:55    Titel: Antworten mit Zitat

Hast du den bei 1. nur einen Zeiger erzeugt oder auch die Adresse eines Objektes zugewiesen? Ich mein, ein 'leerer' Zeiger kann natürlich nur Ärger machen.
CPP:
int* var = 0;
*var = 5;

...kracht ja schließlich auch.

Was du da machst, ist übrigens sogar sehr gefährlich, du solltest Zeiger immer sauber mit 0 initialisieren.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
David
Super JLI'ler


Alter: 39
Anmeldedatum: 13.10.2005
Beiträge: 315

Medaillen: Keine

BeitragVerfasst am: 10.05.2006, 20:10    Titel: Re: Zeigerfrage Antworten mit Zitat

Mat hat Folgendes geschrieben:

Aber ist das für die Funktion nicht absolut irrelevant ?
Der Speicher wird doch reserviert, und ob sie jetzt direkt über die Adressvariable (den Zeiger) oder über eine Parametervariable auf den Speicherbereich zugreift, dürfte doch keine Rolle spielen- aber anscheinend doch ... oO !?


Falsch, die Funktion geht davon aus das ein Zeiger auf einen gültigen Speicherbereich übergeben wird. Den musst du entweder reservieren oder es für dich erledigen lassen. Letzteres passiert wenn du ein lokales Objekt auf dem Stack erstellst.

grüße
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mat
Senior JLI'ler


Alter: 36
Anmeldedatum: 17.09.2005
Beiträge: 205
Wohnort: Koblenz
Medaillen: Keine

BeitragVerfasst am: 10.05.2006, 21:03    Titel: Antworten mit Zitat

Ahh, vielen Dank Wink

Da habe ich etwas falsch in Erinnerung behalten gehabt.
Das Problem ist geklärt, Danke !
_________________
- - - - - - - - - - - - - - - - - - - -
-> http://www.sea-productions.de
-> http://www.krawall.de
- - - - - - - - - - - - - - - - - - - -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum