eigens standard new
-
hi
mit malloc kann ich ja z.B. folgendes tun
#define malloc my_malloc #define realloc my_realloc #define free my_free int main(int argc, char* argv[]) { char* mt = (char*)malloc(100); //Hier wird nun my_malloc aufgerufen... free(mt); return 0; }
kann ich sowas auch mit new machen???
also
int main(int argc, char* argv[]) { char* mt = new char[100]; // hier soll nun mein eignes new aufgerufen werden delete [] mt; // hier soll nun mein eignes delete aufgerufen werden return 0; }
schonmal danke!
-
Der Precompiler würde das new mit my_new ersetzen bevor es der Compiler zu sehen bekommt. -> Also ja.
In der MFC ist das z.B. so geregelt wenn es um eine debug Version des op new geht.
-
einfach den operator new neu schreiben
#include <cstddef> void *operator new(std::size_t n) { return ::operator new(n); } void operator delete(void *type) { ::operator delete(type); }
-
Original erstellt von kingruedi:
**einfach den operator new neu schreiben#include <cstddef> void *operator new(std::size_t n) { return ::operator new(n); } void operator delete(void *type) { ::operator delete(type); }
**
so funzt es nicht...
dadurch ruf ich mich immer wieder selber auf!aber hab ne lösung gefunden...
danke
-
Könntest du diese auch preisgeben?
-
void *operator new(size_t size) { printf("new(%i)\n", size); return my_alloc(size); } void operator delete(void* block) { printf("delete(%08x)\n", block); my_free(block); }