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

04.08.2008, 18:25
|
|
Постоянный
Регистрация: 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); то все ОК  Разве переменная сразу после её инициализации не является пустой????
|
|
|

04.08.2008, 19:40
|
|
Участник форума
Регистрация: 03.01.2008
Сообщений: 156
Провел на форуме: 414311
Репутация:
110
|
|
нет, автоматические переменные (память выделяется в стеке) при создании не обнуляются и там содержится мусор.
Как и динамические массивы как в твоём примере (память выделяется в куче).
Обнуляются только статические переменные (память в секции данных).
|
|
|

04.08.2008, 21:14
|
|
Познающий
Регистрация: 04.07.2008
Сообщений: 56
Провел на форуме: 390892
Репутация:
60
|
|
_nic
вместо
Код:
char *a=new char[100];
лучше используй
Код:
char *a = (char*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, 100);
|
|
|

04.08.2008, 22:09
|
|
Участник форума
Регистрация: 03.01.2008
Сообщений: 156
Провел на форуме: 414311
Репутация:
110
|
|
2SlyBit
не мешай человеку стандартную библиотеку изучать ^_____^
нда, и с чего ты взял, что это он под винду кодит?
|
|
|

04.08.2008, 22:31
|
|
Познающий
Регистрация: 04.07.2008
Сообщений: 56
Провел на форуме: 390892
Репутация:
60
|
|
izlesa
почитал его предыдущие посты 
|
|
|

05.08.2008, 01:24
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
Сообщение от SlyBit
_nic
вместо
Код:
char *a=new char[100];
лучше используй
Код:
char *a = (char*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, 100);
Какие преимущества дает такая громоздкая конструкция?
|
|
|

05.08.2008, 07:06
|
|
Участник форума
Регистрация: 03.01.2008
Сообщений: 156
Провел на форуме: 414311
Репутация:
110
|
|
2_nic
она эффективнее ) тк в конечном итоге функции из стандартной библиотеки вызывают ВинАПИ и в частности эту функцию.
Хотя можешь не парится и использовать malloc ... всмысле new ^_____^
|
|
|

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

07.08.2008, 12:58
|
|
Познающий
Регистрация: 15.01.2006
Сообщений: 45
Провел на форуме: 210499
Репутация:
16
|
|
Меня интересует, существуют ли какие-нибудь универсальные средства визуализации XML (XSD) на языке C(C++,C#), т.е. чтоб из xml-документа сделать графический, табличку, например, или массив табличек на листике.
|
|
|

07.08.2008, 23:34
|
|
Познающий
Регистрация: 25.04.2008
Сообщений: 51
Провел на форуме: 146826
Репутация:
17
|
|
Здравствуйте. Научился я чуточку кодить на PHP, решил начать кодить на С++. Так вот пара вопросов. 1. Как осуществить конкатенцию строк. Как получить строку, которая выглядит на пхп так: $a="hello, $name";. 2. Как имитировать клик, двойной клик мыши. Ставим курсор, получаем ид. окна, пишем SendMessage(windid, LBUTTONDOWN... потом батон ап. Но при запуске проги получается просто как будто я нажал и держу кнопку мыши. Реализовать полный щелчек? Например нужно запустить прогу с раб. стола(дабл клик), или нажать на кнопку меню.
Спасибо. Надеюсь все описал понятно и без ошибок-я с мобилы. Буду очень благодарен за помощь.
Последний раз редактировалось agrofyl2; 08.08.2008 в 14:25..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|