![]() |
|
Модераторы: bsa |
![]()
|
|
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Syltan, представь себе, что память это одномерный массив байт. Указатель - это смещение от начала этого массива к конкретному месту, с которого располагается некий кусок данных. Если memset передать это смещение в качестве первого параметра, 0 в качестве второго, и 10 в качестве 3-го, то она заполнит нулями 10 байт начиная с переданного смещения.
|
|||
|
||||
| Syltan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 301 Регистрация: 31.8.2009 Репутация: -1 Всего: -2 |
Это означает что переменная salo, хранит в себе число состоящее из 50 байт, и это число все нули? |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Добавлено через 1 минуту и 54 секунды bsa, бесполезно. таких вопросов, спустя столько написанных постов, я еще не встречал. -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Syltan,
начнем с того, что это вообще по идее скомпилироваться не должно. Так как sizeof(50) (сколько байт занимает в памяти число 50 ты хоть сам знаешь?) ничего не сможет вернуть. Но даже если бы ты написал memset(&salo, 0, 50), что имеет больше смысла, то это еще не говорит о том, что переменная salo имеет размер 50. Ты вообще перепутал следствие с причиной. Обычно, пишут так: memset(&salo, 0, sizeof(salo)), где salo - зануляемая переменная (не указатель на нее). В твоем же случае, если размер salo меньше 50, то выполнение этой команды приведет не неопределенному поведению программы (скорее всего, это будет просто крах). Это сообщение отредактировал(а) bsa - 24.2.2010, 16:53 |
|||
|
||||
| lBugl |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 18.8.2009 Репутация: 1 Всего: 2 |
memset(p1,p2,p3);
и так)) р1 -- это адрес в памяти р2 -- значение которое будем записывать в память р3 -- количество байт которым будем присваивать значение р2 начиная с р1 как массив, всё правильно объясняли. к примеру память 1 2 3 4 5 6 7 8 9.... делаем memset(3, 0, 4); начало памяти считаем с 0-ым индексом т.е. начинается с нуля. получается память с таким содержимым 1 2 3 0 0 0 0 8 9.... терь по поводу первого параметра. &n -- это не значение переменной, это адрес памяти где она находится. //на сколько я помню =) проще врядле смогу объяснить... зы: советую посмотреть операции * и & в си... Это сообщение отредактировал(а) lBugl - 24.2.2010, 17:46 |
|||
|
||||
| Sosed |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 18.8.2009 Репутация: 1 Всего: 1 |
Добавим иллюстрации
![]()
ну собственно memset(&t34, 0, sizeof(t34)) : &t34 = 0x0012FE94 sizeof(t34) = 12 После, в ячейках 0x0012FE94, 0x0012FE95, ... , 0x0012FEA5 будут нули, соответственно значения x, y и fuel = 0. Тут структура без дыр. |
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
После memset - безусловно - Я изобрел автомат для бритья. - А как он действует? - Клиент сует голову в отверстие, и 2 бритвы внутри автомата его бреют - Но у всех же свой профиль лица! - Ну. в первый раз, да ..... |
||||
|
|||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |