ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

07.04.2009, 20:50
|
|
Постоянный
Регистрация: 11.03.2008
Сообщений: 347
Провел на форуме: 2075230
Репутация:
462
|
|
Сообщение от pira
Так это общая ветка "С/С++, C#, Delphi, .NET, Asm".
нет. читать умееш? [c/c++] Новичкам: задаем вопросы
http://forum.antichat.ru/thread39636.html
|
|
|

08.04.2009, 18:17
|
|
Новичок
Регистрация: 07.05.2008
Сообщений: 9
Провел на форуме: 77728
Репутация:
12
|
|
Как можно в графическом режиме вевести некоторое числовое значение?
Пробовал функцию outtextxy как в паскале, но значение перменной с её помощью вывести не получается...
Заранее благодарю
Вот тут я пытаюсь вывести координаты на экран, чтобы получилось что-то вроде числовой линии.
Код:
for (dx=0;dx<=maxx;)
{
outtextxy(dx,y2-30,"здесь_надо_вывести_значение_dx");
dx=dx+40;
}
Последний раз редактировалось gyunter; 08.04.2009 в 18:20..
|
|
|

08.04.2009, 18:25
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме: 2868783
Репутация:
414
|
|
Код:
char buffer[20];
sprintf(buffer, "%d", 12345);
outtextxy(x, y, buffer);
устроит?)
Последний раз редактировалось razb; 08.04.2009 в 18:29..
|
|
|

08.04.2009, 18:36
|
|
Новичок
Регистрация: 07.05.2008
Сообщений: 9
Провел на форуме: 77728
Репутация:
12
|
|
razb, большое спасибо! Все заработало, как нужно 
|
|
|

10.04.2009, 12:37
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
Вот такой код
Код:
hh=HeapCreate(0,0x01000,0);
char *buf=(char*)HeapAlloc(hh,0,1024*1024);
strcpy(buf,"sdjbksadbvkjlbsdkvljbsdkjbvkjsdabvkjasdbkvjbasdkjvbsakjbvkjslb");
buf+=1024*1024;
strcpy(buf,"sdjbksadbvkjlbsdkvljbsdkjbvkjsdabvkjasdbkvjbasdkjvbsakjbvkjslb");
MessageBox(0,buf,"!",MB_OK);
HeapFree(hh,0,buf);
Тут конечно же на последней строке идет вылет в отладчик с матюком что в rtlfreeheap был передан кривой указатель на блок памяти.
А теперь такой вот код
Код:
hh=HeapCreate(0,0x01000,0);
char *buf=(char*)HeapAlloc(hh,0,1024*1024);
strcpy(buf,"sdjbksadbvkjlbsdkvljbsdkjbvkjsdabvkjasdbkvjbasdkjvbsakjbvkjslb");
buf+=1024*1024;
buf=(char*)HeapAlloc(hh,0,1024*1024);
strcpy(buf,"sdjbksadbvkjlbsdkvljbsdkjbvkjsdabvkjasdbkvjbasdkjvbsakjbvkjslb");
MessageBox(0,buf,"!",MB_OK);
HeapFree(hh,0,buf);
В это случае вылетов нет.НО через диспетчер задач наблюдается утечка памяти.
Вопрос:как в таком случае надо правильно освобождать память?
|
|
|

10.04.2009, 13:44
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме: 2868783
Репутация:
414
|
|
char *buf=(char*)HeapAlloc(hh,0,1024*1024);
buf=(char*)HeapAlloc(hh,0,1024*1024)
Ты два раза выделяешь память на один указатель в следствии этого первый блок памяти теряется.
|
|
|

10.04.2009, 13:55
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
Сообщение от razb
Ты два раза выделяешь память на один указатель в следствии этого первый блок памяти теряется.
Читай внимательно, я немогу освободить 1й блок.
|
|
|

10.04.2009, 14:18
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме: 2868783
Репутация:
414
|
|
Знач. используй два буфера. В переменную buf присваивается адрес начала выделенной памяти, а предыдущее значение теряется и его уже не вернуть поэтому и будет утечка памяти.
|
|
|

10.04.2009, 15:31
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
Сообщение от razb
Знач. используй два буфера. В переменную buf присваивается адрес начала выделенной памяти, а предыдущее значение теряется и его уже не вернуть поэтому и будет утечка памяти.
Что значить используй два.Мне надо освободить область памяти после операции += .Если нечего по делу ответить то лутчше вообще молчать.
|
|
|

10.04.2009, 15:39
|
|
Познающий
Регистрация: 30.01.2009
Сообщений: 30
Провел на форуме: 75077
Репутация:
14
|
|
или засунь перед освобождением или используй бва указателя на буфер. А так ты портишь указатель на буфер, ясен пень, что оно ругается.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|