Форум программистов, компьютерный форум CyberForum.ru

Нужен совет по выделению памяти - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Анти спам ,блокировака чата http://www.cyberforum.ru/cpp-beginners/thread637292.html
Не могу придумать как написать код С++ что бы когда человек в чат пишет очень быстро больше 5 сообщений ,то есть флудит срабатывал вот такой код player->GetSession()->m_muteTime = time(0) + 5; и его чат блокировался на 5 минут. Если кто может напишите Код
C++ Рабочий стол Как мне прописать в программе путь до рабочего стола? http://www.cyberforum.ru/cpp-beginners/thread637250.html
Глобальные статические переменные C++
Ребят, может мне кто-нибудь объяснить назначение глобальных статических переменных? Литература (в частности Шилдт) говорит о том, что к таким переменным можно обратиться из первого файла через функцию, определенную во втором файле (вместе с глобальными статик переменными). А вот если попытаться получить доступ непосредственно (не через функцию) к этим переменным из первого файла, то получим фейл,...
Ярлык C++
Можно как нибудь програмно создать ярлык на определенный сайт в определенном месте?
C++ Выражение должно иметь тип класса. Да ну? http://www.cyberforum.ru/cpp-beginners/thread637241.html
перекопал весь форум, ни где не нашел решение моей проблемы. #include <GL/glut.h> #include <Windows.h> #include <iostream> #include <stdio.h> #include <math.h> #include <time.h> #include <vector>
C++ Диспетчер задач и c++ Ребят, здравствуйте. Вопрос следующий: в диспетчере задач, во вкладке процессы есть поле описание у каждого процесса. Вот как установить это поле в своей программе. Сейчас там выводится название программы например - main.exe. подробнее

Показать сообщение отдельно
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
13.08.2012, 23:13     Нужен совет по выделению памяти
malloc не кидает исключений.
сама конструкция дикая, черт ногу сломит. потом нужно будет не забыть правильно отчистить память,
стандартный delete в этом случае не будет корректно работать.
вообще затея с самодельным выделением памяти не совсем понятна.
если исключения при выделении памяти нужно подавить и не хочется везде в коде расставлять блоки отлова исключений, то для этого есть специальный некидающий исключения оператор new
http://www.cplusplus.com/reference/std/new/nothrow/
этим оператором пытаетесь создать объект. проверяете полученный указатель на равенство нулю.
если ноль - делаете печатаете всякую хрень или еще что-то делаете, если же все хорошо - код выполняется дальше. Если же не хочется везде в коде вставлять печать диагностики, то можно написать пачку шаблонных функций что-то типа:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
template <typename T>
T* New()
{
   return new T();
}
 
template <typename T, typename Arg1>
T* New(const Arg1& arg1)
{
   return new T(arg1);
}
 
template <typename T, typename Arg1, typename Arg2>
T* New(const Arg1& arg1, const Arg2& arg2)
{
   return new T(arg1, arg2);
}
 
...
Ну и такие функции можно дополнить всякой диагностикой. В общем много чего можно сделать и более кошерно чем то, что у вас сейчас. А чтобы сделать кошерно - нужно сперва понять с чем вы боритесь.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru