Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Утечка памяти, ВСВ 2009 
V
    Опции темы
Kirgston
Дата 9.6.2009, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: 2
Всего: 2



Всем доброго времени суток! Ребята. Помогите пожалуйста разобратся с утечкой памяти... 
Код

if ( (Edit2->Text=="") ) {
MessageBox(Handle,"Пожалуйста введите нужное вам кол-во символов для ключа!","Ошибка",0);
}
else
{
if ( Edit2->Text>999999999) {
MessageBox(Handle,"Пожалуйста введите меньшее кол-во символов для ключа!","Ошибка",0);
}
else
{
a = Edit2->Text.ToInt();
ProgressBar1->Visible=true;
ProgressBar1->Max=a;
*p="";
Edit1->Text=*p;
randomize();
for (int i=0; a > i ; i++) {
  //randomize();
  vyb(random(2));
  ProgressBar1->Position++;
  Application->ProcessMessages();
}
Edit1->Text=*p;
ProgressBar1->Position=0;
ProgressBar1->Visible=false;
Edit1->SetFocus();
}
}


Собственно делаю генератор ключей. Всё работает. Достаточно быстро и т.д. =) но! Дело в том... что мол... короче с каждой генерацией программка начинает "кушать" всё больше и больше оперативки! =) 
Код

vyb(random(2));

моя ф-ция. Там короче как... )))) она выбирает будет это цифра или число и по рендому дописывает "символ" в указатель p.

.Н
Код

    AnsiString str,*p;
    unsigned long a;

Форм Криейт
Код

p=&str;

Мммм... ребята... как тут убрать утечку оперативки?  smile 
PM MAIL   Вверх
azesmcar
Дата 9.6.2009, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Kirgston

что-то я не вижу здесь ничего что может вызвать утечку памяти, весь код в студию.

Добавлено через 46 секунд
*p что за указатель? кто делает new?
PM   Вверх
mrbrooks
Дата 9.6.2009, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306




Цитата(Kirgston @  9.6.2009,  11:00 Найти цитируемый пост)
Всем доброго времени суток! Ребята. Помогите пожалуйста разобратся с утечкой памяти... 

У кого? У программиста? smile Это код из ночного кошмара?

Код

if ( Edit2->Text>999999999) {
MessageBox(Handle,"Пожалуйста введите меньшее кол-во символов для ключа!","Ошибка",0);
}

это злобно.

Код

Edit1->Text=*p;

какой смысл использовать здесь указатель?
Цитата(Kirgston @  9.6.2009,  11:00 Найти цитируемый пост)
моя ф-ция. Там короче как... )))) она выбирает будет это цифра или число и по рендому дописывает "символ" в указатель p.

было бы не плохо продемонстрировать и это ноу-хау.
PM MAIL   Вверх
Kirgston
Дата 9.6.2009, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: 2
Всего: 2



Цитата(azesmcar @  9.6.2009,  11:07 Найти цитируемый пост)
*p что за указатель? кто делает new?

мм ну я же там написал что это .Н файл =) ну и логично что указатель глобальный =) указывает на строку str.




Цитата(mrbrooks @  9.6.2009,  11:11 Найти цитируемый пост)
У кого? У программиста?  Это код из ночного кошмара?

мммм нет! Вы что?! Это матрица!!! smile 


Цитата(mrbrooks @  9.6.2009,  11:11 Найти цитируемый пост)
это злобно.

ага я злобный =) просто что бы я не ставил... аля long int, unsigned long int, long double ... у меня не выходит сделать так чтобы число (кол-во символов для ключа) было больше этого числа... вот я и подумал что мб ошибка контрола? =)


Цитата(mrbrooks @  9.6.2009,  11:11 Найти цитируемый пост)
какой смысл использовать здесь указатель?

Я злобный ^_^ ну хорошо... мб так?
Код

Edit1->Text="";
 ? =)

Цитата(mrbrooks @  9.6.2009,  11:11 Найти цитируемый пост)
было бы не плохо продемонстрировать и это ноу-хау.


Ммм просто не очень хотелось выкладывать весь код... =) ибо нелюблю воришек. Тут уже спёрли у меня код (точнее я спрашивал как надо, и дал код, мне дали нормальный код, то есть поправленый. Вот этот код и спёрли. А потом мне пальцами тыкали мол это я у них спёр =) ). За мной следит КГБ  smile 





Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  KeyGen.rar 19,83 Kb
PM MAIL   Вверх
azesmcar
Дата 9.6.2009, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Kirgston, 
Цитата(Kirgston @  9.6.2009,  12:37 Найти цитируемый пост)
ну и логично что указатель глобальный =) указывает на строку str.

Во первых это нелогично, во вторых указатель не глобальный smile он член класса.
Я нигде не нашел динамического выделения памяти. О какой утечке идет речь?

боже мой...что это? smile  smile  smile 
Код

switch (i) {

    case 0: *p+="q"; break;
    case 1: *p+="w"; break;
    case 2: *p+="e"; break;
    case 3: *p+="a"; break;
    case 4: *p+="s"; break;
    case 5: *p+="d"; break;
    case 6: *p+="z"; break;
    case 7: *p+="x"; break;
    case 8: *p+="c"; break;
    case 9: *p+="r"; break;
    case 10: *p+="t"; break;
    case 11: *p+="y"; break;
    case 12: *p+="f"; break;
    case 13: *p+="g"; break;
    case 14: *p+="h"; break;
    case 15: *p+="v"; break;
    case 16: *p+="b"; break;
    case 17: *p+="n"; break;
    case 18: *p+="u"; break;
    case 19: *p+="i"; break;
    case 20: *p+="o"; break;
    case 21: *p+="j"; break;
    case 22: *p+="k"; break;
    case 23: *p+="l"; break;
    case 24: *p+="m"; break;
    case 25: *p+=","; break;
    case 26: *p+="."; break;
    case 27: *p+="p"; break;
    case 28: *p+="["; break;
    case 29: *p+="]"; break;
    case 30: *p+=";"; break;
    case 31: *p+="'"; break;
    case 32: *p+="/"; break;


    case 33: *p+="}"; break;
    case 34: *p+="{"; break;
    case 35: *p+="P"; break;
    case 36: *p+="O"; break;
    case 37: *p+="I"; break;
    case 38: *p+="U"; break;
    case 39: *p+="Y"; break;
    case 40: *p+="T"; break;
    case 41: *p+="R"; break;
    case 42: *p+="E"; break;
    case 43: *p+="W"; break;
    case 44: *p+="Q"; break;
    case 45: *p+="A"; break;
    case 46: *p+="S"; break;
    case 47: *p+="D"; break;
    case 48: *p+="F"; break;
    case 49: *p+="G"; break;
    case 50: *p+="H"; break;
    case 51: *p+="J"; break;
    case 52: *p+="K"; break;
    case 53: *p+="L"; break;
    case 54: *p+=":"; break;
    case 55: *p+="Z"; break;
    case 56: *p+="X"; break;
    case 57: *p+="C"; break;
    case 58: *p+="V"; break;
    case 59: *p+="B"; break;
    case 60: *p+="N"; break;
    case 61: *p+="M"; break;
    case 62: *p+="<"; break;
    case 63: *p+=">"; break;
    case 64: *p+="?"; break;


    case 65: *p+="!"; break;
    case 66: *p+="@"; break;
    case 67: *p+="#"; break;
    case 68: *p+="$"; break;
    case 69: *p+="|"; break;
    case 70: *p+="+"; break;
    case 71: *p+="-"; break;
    case 72: *p+=")"; break;
    case 73: *p+="("; break;
    case 74: *p+="%"; break;
    case 75: *p+="^"; break;
    case 76: *p+="&"; break;
    case 77: *p+="*"; break;
    case 78: *p+="-"; break;
    case 79: *p+="="; break;
    case 80: *p+="\""; break;
    case 81: *p+="*"; break;
    case 82: *p+="~"; break;
    case 83: *p+="`"; break;
    case 84: *p+="\\"; break;



default:
    ;
}

}

PM   Вверх
Lazin
Дата 9.6.2009, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 18
Всего: 154



Цитата(azesmcar @  9.6.2009,  13:11 Найти цитируемый пост)
боже мой...что это?

это индокод smile 
PM MAIL Skype GTalk   Вверх
mrbrooks
Дата 9.6.2009, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



я уже боюсь скачивать архив  smile еще больше боюсь его смотреть  smile

Добавлено через 45 секунд
причем *p это указатель на строку 
PM MAIL   Вверх
Kirgston
Дата 9.6.2009, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: 2
Всего: 2



Цитата(azesmcar @  9.6.2009,  13:11 Найти цитируемый пост)
боже мой...что это?      

мммммм это и сам генератор  smile  а чем вам не нравится? Вроде всё работает  smile 


Цитата(azesmcar @  9.6.2009,  13:11 Найти цитируемый пост)
О какой утечке идет речь?

мммм ну запустите программку и сделайте скажем ключик на 20тыс. символов )))) и увидите сколько жрёт оперативки =) у меня так доходило и до 60мб =)


PM MAIL   Вверх
azesmcar
Дата 9.6.2009, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Цитата(Lazin @  9.6.2009,  13:14 Найти цитируемый пост)
это индокод smile  

похож smile 

Цитата(mrbrooks @  9.6.2009,  13:16 Найти цитируемый пост)
причем *p это указатель на строку  

изменять значение строки напрямую сейчас не модно, надо через указатель чтобы запутать хакеров smile 

Kirgston
можно узнать подробнее что именно должна делать программа? я уверен ее можно написать не более чем в 10 строк.
PM   Вверх
Kirgston
Дата 9.6.2009, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: 2
Всего: 2



Цитата(mrbrooks @  9.6.2009,  13:16 Найти цитируемый пост)
я уже боюсь скачивать архив  

Прально )))) этот код делает человека глупее  smile 


Цитата(mrbrooks @  9.6.2009,  13:16 Найти цитируемый пост)
причем *p это указатель на строку 

Ну да... )) я в строку пишу всё это =)

Добавлено через 1 минуту и 29 секунд
Цитата(azesmcar @  9.6.2009,  13:20 Найти цитируемый пост)
можно узнать подробнее что именно должна делать программа? я уверен ее можно написать не более чем в 10 строк.

Генератор паролей =)


Цитата(azesmcar @  9.6.2009,  13:20 Найти цитируемый пост)
изменять значение строки напрямую сейчас не модно, надо через указатель чтобы запутать хакеров 

Видать вы книги не читаете )))))) ну просто как... я прочитал в книге что указатели очень еффективны в использовании с строками и масивами. Ну тут строка =) 
PM MAIL   Вверх
azesmcar
Дата 9.6.2009, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Цитата(Kirgston @  9.6.2009,  13:20 Найти цитируемый пост)
Вроде всё работает  

весьма сомнительный критерий качества программы.


Цитата(Kirgston @  9.6.2009,  13:20 Найти цитируемый пост)
мммм ну запустите программку и сделайте скажем ключик на 20тыс. символов )))) и увидите сколько жрёт оперативки =) у меня так доходило и до 60мб =)

20000 символов в юникоде - уже 40мб, в анси - 20. Плюс накладные расходы, плюс наверняка дебаг версия. Это никакой не признак утечки памяти.

Цитата(Kirgston @  9.6.2009,  13:21 Найти цитируемый пост)
Видать вы книги не читаете 

А что такое книга?

Цитата(Kirgston @  9.6.2009,  13:21 Найти цитируемый пост)
ну просто как... я прочитал в книге что указатели очень еффективны в использовании с строками и масивами. Ну тут строка =)  

чтение это хорошо. Только вот понимать прочитанное важнее.

Это сообщение отредактировал(а) azesmcar - 9.6.2009, 13:26
PM   Вверх
mrbrooks
Дата 9.6.2009, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Цитата(Kirgston @  9.6.2009,  13:21 Найти цитируемый пост)
я прочитал в книге что указатели очень еффективны в использовании с строками и масивами. Ну тут строка =)  

Есть подозрение что это говорилось применительно к си-образным строкам - то бишь массивам символов. Такой же подход к AnsiString я встречаю в первые.

Цитата(Kirgston @  9.6.2009,  13:21 Найти цитируемый пост)

Прально )))) этот код делает человека глупее

вероятно.

Это сообщение отредактировал(а) mrbrooks - 9.6.2009, 13:31
PM MAIL   Вверх
azesmcar
Дата 9.6.2009, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



Цитата(Kirgston @  9.6.2009,  13:21 Найти цитируемый пост)
Генератор паролей =)

неслабый пароль в 20000 символов.
программа призвана помочь в этой ситуации? smile 
http://support.microsoft.com/kb/276304?


Это сообщение отредактировал(а) azesmcar - 9.6.2009, 13:33
PM   Вверх
Kirgston
Дата 9.6.2009, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: 2
Всего: 2



Ммм ну цитирую =)

"Наибольшая эффективность применения указателей в разработке приложений достигается при использовании их с массивами и символьными строками" =)


Цитата(azesmcar @  9.6.2009,  13:24 Найти цитируемый пост)
20000 символов в юникоде - уже 40мб, в анси - 20. Плюс накладные расходы, плюс наверняка дебаг версия. Это никакой не признак утечки памяти.

А как тогда убрать следы за собой?


Цитата(azesmcar @  9.6.2009,  13:24 Найти цитируемый пост)
дебаг версия

а чем она отличается от реализа?

Добавлено через 2 минуты и 22 секунды
Цитата(azesmcar @  9.6.2009,  13:32 Найти цитируемый пост)
программа призвана помочь в этой ситуации?http://support.microsoft.com/kb/276304?

 smile именно ))))))) а кто его знает... может быть вы захотите поставить себе пароль из 20милионов на свой аккаунт на почте?
PM MAIL   Вверх
azesmcar
Дата 9.6.2009, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



http://forum.vingrad.ru/forum/topic-137607...y1040399/0.html
вот вам генератор паролей, писал я его давно, но на определенные мысли он натолкнет smile

Добавлено через 2 минуты и 29 секунд
Цитата(Kirgston @  9.6.2009,  13:33 Найти цитируемый пост)
А как тогда убрать следы за собой?

а зачем убирать? по вашему кто нибудь будет генерировать 20000 символьные пароли?

Цитата(Kirgston @  9.6.2009,  13:33 Найти цитируемый пост)
а чем она отличается от реализа?

в дебаг версии добавляется дополнительная информация.

Это сообщение отредактировал(а) azesmcar - 9.6.2009, 13:38
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0966 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.