ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

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

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

  #1351  
Старый 04.08.2008, 18:25
_nic
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме:
2982851

Репутация: 107


По умолчанию

Обьясните плз чайнику почему при копирование одного символа из строки за ним появляется мусор(в перемонной b)
Код:
main()
{
char *a=new char[100];
char *b=new char[100];
strcpy(a,"abcde");
cout<<a<<endl;
strncpy(b,a,1);
printf("%s",b);
getch();
}
а если добавить строчку memset(b,NULL,100); то все ОК Разве переменная сразу после её инициализации не является пустой????
 
Ответить с цитированием

  #1352  
Старый 04.08.2008, 19:40
izlesa
Участник форума
Регистрация: 03.01.2008
Сообщений: 156
Провел на форуме:
414311

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

нет, автоматические переменные (память выделяется в стеке) при создании не обнуляются и там содержится мусор.
Как и динамические массивы как в твоём примере (память выделяется в куче).
Обнуляются только статические переменные (память в секции данных).
 
Ответить с цитированием

  #1353  
Старый 04.08.2008, 21:14
SlyBit
Познающий
Регистрация: 04.07.2008
Сообщений: 56
Провел на форуме:
390892

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

_nic

вместо
Код:
char *a=new char[100];
лучше используй
Код:
char *a = (char*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, 100);
 
Ответить с цитированием

  #1354  
Старый 04.08.2008, 22:09
izlesa
Участник форума
Регистрация: 03.01.2008
Сообщений: 156
Провел на форуме:
414311

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

2SlyBit
не мешай человеку стандартную библиотеку изучать ^_____^
нда, и с чего ты взял, что это он под винду кодит?
 
Ответить с цитированием

  #1355  
Старый 04.08.2008, 22:31
SlyBit
Познающий
Регистрация: 04.07.2008
Сообщений: 56
Провел на форуме:
390892

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

izlesa

почитал его предыдущие посты
 
Ответить с цитированием

  #1356  
Старый 05.08.2008, 01:24
_nic
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме:
2982851

Репутация: 107


По умолчанию

Цитата:
Сообщение от SlyBit  
_nic

вместо
Код:
char *a=new char[100];
лучше используй
Код:
char *a = (char*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, 100);
Какие преимущества дает такая громоздкая конструкция?
 
Ответить с цитированием

  #1357  
Старый 05.08.2008, 07:06
izlesa
Участник форума
Регистрация: 03.01.2008
Сообщений: 156
Провел на форуме:
414311

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

2_nic
она эффективнее ) тк в конечном итоге функции из стандартной библиотеки вызывают ВинАПИ и в частности эту функцию.
Хотя можешь не парится и использовать malloc ... всмысле new ^_____^
 
Ответить с цитированием

  #1358  
Старый 05.08.2008, 10:39
SlyBit
Познающий
Регистрация: 04.07.2008
Сообщений: 56
Провел на форуме:
390892

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

+ обнуление памяти
 
Ответить с цитированием

  #1359  
Старый 07.08.2008, 12:58
Patrik
Познающий
Регистрация: 15.01.2006
Сообщений: 45
Провел на форуме:
210499

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

Меня интересует, существуют ли какие-нибудь универсальные средства визуализации XML (XSD) на языке C(C++,C#), т.е. чтоб из xml-документа сделать графический, табличку, например, или массив табличек на листике.
 
Ответить с цитированием

  #1360  
Старый 07.08.2008, 23:34
agrofyl2
Познающий
Регистрация: 25.04.2008
Сообщений: 51
Провел на форуме:
146826

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

Здравствуйте. Научился я чуточку кодить на PHP, решил начать кодить на С++. Так вот пара вопросов. 1. Как осуществить конкатенцию строк. Как получить строку, которая выглядит на пхп так: $a="hello, $name";. 2. Как имитировать клик, двойной клик мыши. Ставим курсор, получаем ид. окна, пишем SendMessage(windid, LBUTTONDOWN... потом батон ап. Но при запуске проги получается просто как будто я нажал и держу кнопку мыши. Реализовать полный щелчек? Например нужно запустить прогу с раб. стола(дабл клик), или нажать на кнопку меню.
Спасибо. Надеюсь все описал понятно и без ошибок-я с мобилы. Буду очень благодарен за помощь.

Последний раз редактировалось agrofyl2; 08.08.2008 в 14:25..
 
Ответить с цитированием
Ответ



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



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


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




ANTICHAT.XYZ