|
JLI Spieleprogrammierung
|
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
|
Verfasst am: 10.05.2006, 19:45 Titel: Zeigerfrage |
|
|
Hey, malwieder eine Grundverständnisfrage .. abr wer nicht fragt bleibt dumm oder
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 |
|
|
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 10.05.2006, 19:55 Titel: |
|
|
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 |
|
|
David Super JLI'ler
Alter: 39 Anmeldedatum: 13.10.2005 Beiträge: 315
Medaillen: Keine
|
Verfasst am: 10.05.2006, 20:10 Titel: Re: Zeigerfrage |
|
|
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 |
|
|
Mat Senior JLI'ler
Alter: 36 Anmeldedatum: 17.09.2005 Beiträge: 205 Wohnort: Koblenz Medaillen: Keine
|
Verfasst am: 10.05.2006, 21:03 Titel: |
|
|
Ahh, vielen Dank
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 |
|
|
|
|
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
|