Frage zu "void*" und "delete[]" ;) -->
-
1. Nein.
2. Poste bitte mal Beispiel, bei dem das so ist.
-
Seid ihr synchronisiert?
-
Aziz schrieb:
Seid ihr synchronisiert?
*g*
Ich war 13 Sekunden zu langsam.
-
Beispiel für Verwendung von void**:
STDAPI CoCreateInstance( REFCLSID rclsid, //Class identifier (CLSID) of the object LPUNKNOWN pUnkOuter, //Pointer to whether object is or isn't part // of an aggregate DWORD dwClsContext, //Context for running executable code REFIID riid, //Reference to the identifier of the interface LPVOID * ppv //Address of output variable that receives // the interface pointer requested in riid );
für void* fällt mir aber auch nichts passendes ein.
-
zu 1: thx. War mir klar dass man mit delete[] nur mit new vom Heap geholtes freigibt aber hätt ja sein können dass man auch stack-speicher freigeben kann wenn man den speicher nciht bis zum Funktionsende behalten muss.
zu 2: hast sich erledigt. Ich ahtte ca 50 zeilen drüber ein "}" vergessen. Der dumme Compiler (borland 5.5) hat den Fehler komischerweise gaanz falsch gemeldet..
---------------------------------------------
Da ich aber ein echter Seppel bin, der nun von garnichts Ahnung hat, habe ich noch 1 Zusatzfrage so mittendrin:
1. "a" liefert einen konstanten char-Pointer. Was liefert 'a'???
-
char foo = 'a';
meinst du das?
'a' ist ein character (char).
-
Yeeahhh kapiert.
Hey man ich bin der Checker...Danke.
-
War mir klar dass man mit delete[] nur mit new vom Heap geholtes freigibt
Achtung! Mit delete[] nur Speicher löschen, der mit new[] geholt wurde und mit delete nur löschen was mit new gehol wurde
-
...hehe.
-
kingruedi schrieb:
Achtung! Mit delete[] nur Speicher löschen, der mit new[] geholt wurde und mit delete nur löschen was mit new gehol wurdeund nicht auf die idee kommen, statt new T nur mehr new T[1] zu verwenden, "weil man dann immer delete [] verwenden kann".
-
War das ironisch oder wieso sollte man das nicht machen?
MfG Eisflamme; Ahnung von gar nichts
-
1.) "1" wird irgendwo mitgespeichert
2.) undefiniertes verhalten:struct Foo { virtual ~Foo () {} }; struct Bar : Foo {}; //... Foo *f = new Bar[1]; delete [] f;