Форум программистов, компьютерный форум, киберфорум
Наши страницы

Статический пул для класса с помошью class::operator new непонятное исключение? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как найти дескриптор действительно активного окна? http://www.cyberforum.ru/cpp-beginners/thread637841.html
Я поясню. Запускаю: #include <windows.h> #include <stdio.h> int main () { while (1) { Sleep (1000); printf ("%x\n", GetForegroundWindow ()); }
C++ Построение проекта на CGI (C++) Имеет ли смысл полностью отказаться от PHP (или оставить для инклудов CGI-модулей на страницах, где много текста), и заменить все на С++? Дела с огромным трафиком не имел, максимум 5000 хостов в... http://www.cyberforum.ru/cpp-beginners/thread637834.html
C++ Работа с клавиатурой
Здраствуйте, есть задача эмулировать нажатия клавиш, но winapi не выход, либо там где нада использовать эмуляцию срабатывает защита от эмуляции, хотел узнать как можна решить проблему? Писать драйвер...
Цвет текста в консоли C++
Цвет текста в консоли, задний фон текста, общий фон. Как это можно сделать через printf? или же другие функции? Помогите! MVS.
C++ Программное отключение интернета http://www.cyberforum.ru/cpp-beginners/thread637813.html
Всем привет, интересует такой вопрос: Можно кликами мышки выключать интернет в "Центре ...", в настройках адаптера кнопка "Отключить/Включить". Ну так вот, как это сделать из программы? Есть...
C++ Странное поведение wstring Всем привет! Ребята, не могу понять такую ситуацию. Вставляю в wstring строку в позицию 0 таким образом positionclient.insert(0,L"Клиент \" "); positionclient += L" не зарегистрирован"; ... подробнее

Показать сообщение отдельно
returnless
26 / 26 / 3
Регистрация: 05.08.2012
Сообщений: 83
15.08.2012, 16:00  [ТС]
Решил проблему. баг был в коде удаления не правильно вычислялся индекс.
Исправил.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void freeMemPool(void* p ) 
{
    [B]int i = (int)( (int)p - (int)gMemPoolPointers[0] );[/B] // вычисляем индекс указателя в пуле
    i = (int) (i / sizeof (Box));
 
    if (i <= POOL_POSITIONS) 
    { 
        gMemPoolStatus[i] = memFree;
#ifndef NDEBUG
    printf("freeMemPool %u at %d\n", i, (int)p);
#endif
    }
}
было
C++
1
[B]int i = (int)( (int*)p - (int*)gMemPoolPointers[0] );[/B]
результаты теста. 3 млн. итераций std::new и 41млн итераций static pool new.
0
Миниатюры
Статический пул для класса с помошью class::operator new непонятное исключение?  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru