
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
24.07.2006, 19:48
|
|||
|---|---|---|---|
В чем ошибка (перегрузка NEW) |
|||
|
#18+
автор#define DEBUG_NEW new(__LINE__) #define new DEBUG_NEW inline void * __cdecl operator new(size_t size, int line) { void *ptr = (void *)malloc(size); data.address = (unsigned long)ptr; data.line = line; data.size = size; mySpy.AddToList(data); return (ptr); };//new(unsigned int size) хотя такой вариант работает: автор#define inline void * __cdecl operator new(size_t size) { void *ptr = (void *)malloc(size); data.address = (unsigned long)ptr; data.size = size; mySpy.AddToList(data); return (ptr); };//new(unsigned int size) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.07.2006, 20:02
|
|||
|---|---|---|---|
В чем ошибка (перегрузка NEW) |
|||
|
#18+
во втором фрагменте #define написал по-ошибке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.07.2006, 20:21
|
|||
|---|---|---|---|
В чем ошибка (перегрузка NEW) |
|||
|
#18+
Вопрос собственно в том, что если я перегружаю: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. каков должен быть теперь синтаксис new, чтобы вызвана была перегруженна функция??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.07.2006, 21:14
|
|||
|---|---|---|---|
|
|||
В чем ошибка (перегрузка NEW) |
|||
|
#18+
TubrikВопрос собственно в том, что если я перегружаю: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. каков должен быть теперь синтаксис new, чтобы вызвана была перегруженна функция??? Ну, например, так (если я не ошибся): Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.07.2006, 19:44
|
|||
|---|---|---|---|
В чем ошибка (перегрузка NEW) |
|||
|
#18+
Странный кодю Ибо основоположник делал это так void* operator new(size_t); void* operator new[](size_t); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.07.2006, 19:45
|
|||
|---|---|---|---|
В чем ошибка (перегрузка NEW) |
|||
|
#18+
Ничего не странный, нужно знать в какой строке и файле произошло выделение памяти для отлова утечки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.07.2006, 16:20
|
|||
|---|---|---|---|
В чем ошибка (перегрузка NEW) |
|||
|
#18+
Хмм а вся беда в define берем код #define DEBUG_NEW new(__LINE__) #define new DEBUG_NEW void* operator new(size_t size, int line) { void *ptr = (void *)malloc(size); data.address = (unsigned long)ptr; data.line = line; data.size = size; mySpy.AddToList(data); return (ptr); };//new(unsigned int size) int main() { char* c_ptr; c_ptr = new(char); delete c_ptr; c_ptr = new char; delete c_ptr; } после препроцессора void* operator new(4)(size_t size, int line) { void *ptr = (void *)malloc(size); data.address = (unsigned long)ptr; data.line = line; data.size = size; mySpy.AddToList(data); return (ptr); }; int main() { char* c_ptr; c_ptr = new(19)(char); delete c_ptr; c_ptr = new(21) char; delete c_ptr; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&tablet=1&tid=2030786]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
143ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 214ms |
| total: | 475ms |

| 0 / 0 |
