HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #2641  
Старый 04.04.2009, 18:05
KaZ@NoVa
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
Провел на форуме:
3134311

Репутация: 1467


Отправить сообщение для KaZ@NoVa с помощью ICQ Отправить сообщение для KaZ@NoVa с помощью AIM Отправить сообщение для KaZ@NoVa с помощью Yahoo
По умолчанию

Цитата:
Сообщение от _nic  
Я правильно понял что если RegDeleteKey возвращяет вместо ноля 6 ,то это значит что HKEY кривой?
Цитата:
"При ошибке, возвращаемое значение – это код ошибки, объявленный в WINERROR.H."
.....
 
Ответить с цитированием

  #2642  
Старый 06.04.2009, 21:45
awdrg
Участник форума
Регистрация: 30.01.2009
Сообщений: 196
Провел на форуме:
505362

Репутация: 66
Отправить сообщение для awdrg с помощью ICQ
По умолчанию

Подскажите пожалуйста, можно ли обращатся напрямую к оперативной памяти других программ или самой ОС или это можно только через ассемблер? Пример - программа для тестирования всей ОП компа.
 
Ответить с цитированием

  #2643  
Старый 06.04.2009, 22:01
.ATK
Участник форума
Регистрация: 20.02.2009
Сообщений: 224
Провел на форуме:
5075819

Репутация: 274
По умолчанию

Рихтер, тебе в помощь... там целая глава, по поводу твоего вопроса!!
 
Ответить с цитированием

  #2644  
Старый 06.04.2009, 22:04
_nic
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме:
2982851

Репутация: 107


По умолчанию

Подскажите где тут ошибка
Код:
HANDLE hh;
hh=HeapCreate(0,0x01000,(1024*1024)*50);
if(hh==NULL){MessageBox(0,"!","!",MB_OK);}
char *buf=(char*)HeapAlloc(hh,0,1024*1024);
if(buf==NULL){MessageBox(0,"!","!",MB_OK);}//вовращяет NULL :(
strcpy(buf,"sdjbksadbvkjlbsdkvljbsdkjbvkjsdabvkjasdbkvjbasdkjvbsakjbvkjslb");
MessageBox(0,buf,"!",MB_OK);
HeapFree(hh,0,&buf);
HeapDestroy(hh);
ЗЫ:GetLastError возвращяет 0

Последний раз редактировалось _nic; 06.04.2009 в 22:10..
 
Ответить с цитированием

  #2645  
Старый 06.04.2009, 22:18
awdrg
Участник форума
Регистрация: 30.01.2009
Сообщений: 196
Провел на форуме:
505362

Репутация: 66
Отправить сообщение для awdrg с помощью ICQ
По умолчанию

еще такой вопрос по памяти: хочу сделать обработку исключений следующим способом:
Код:
#include <iostream>
using namespace std;

main()
{
   char * a;
   for (int x = 0; x<1000; x++)
   {
      a = new char[10000000];
      if (a == NULL)
      {
         cout << "Error allocating memory\n";
         return 0;
      }         
      else
      { 
         cout << x << ")" << "memory allocated successfully\n";
      }      
   } 
   return 0;
}
но при превышении лимита выделяемой памяти пишет в консоли не мое сообщение а вот что:
Код:
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Aborted
запускал в bash'e никсов. Как я понимаю это ограничение на уровне самой ОС и его нельзя обойти? :-/

Последний раз редактировалось awdrg; 06.04.2009 в 22:25..
 
Ответить с цитированием

  #2646  
Старый 06.04.2009, 22:31
criz
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме:
811764

Репутация: 119
По умолчанию

Цитата:
Сообщение от _nic  
Подскажите где тут ошибка
может дело в
Цитата:
Сообщение от msdn  
If the heap specified by the hHeap parameter is a "non-growable" heap, dwBytes must be less than 0x7FFF8.
это для HeapAlloc
 
Ответить с цитированием

  #2647  
Старый 06.04.2009, 22:41
criz
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме:
811764

Репутация: 119
По умолчанию

Цитата:
Сообщение от awdrg  
Код:
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Aborted
это вроде сообщение о переполнении стека...
и где, собсна, перехват(try/catch)?
 
Ответить с цитированием

  #2648  
Старый 06.04.2009, 22:53
awdrg
Участник форума
Регистрация: 30.01.2009
Сообщений: 196
Провел на форуме:
505362

Репутация: 66
Отправить сообщение для awdrg с помощью ICQ
По умолчанию

в учебнике написано, что если оператор NEW не может присвоить адрес для памяти массиву то он помещает в него значение NULL. Ну в моем коде я сверял его и использовал ветвление По идее, все должно работать. Но не работает.
 
Ответить с цитированием

  #2649  
Старый 06.04.2009, 23:44
Chaak
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме:
5321514

Репутация: 3313


Отправить сообщение для Chaak с помощью ICQ
По умолчанию

awdrg, переполнение стэка, юзай оператор static
 
Ответить с цитированием

  #2650  
Старый 07.04.2009, 01:31
razb
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме:
2868783

Репутация: 414


Отправить сообщение для razb с помощью ICQ
По умолчанию

2awdrg при переполнении оператор new выкидует исключение bad_alloc, вот его и отлавлюй
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Сценарии/CMF/СMS 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ