Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как быстро обнулить объект? 
:(
    Опции темы
Guest
Дата 14.9.2005, 10:25 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Всем привет!
Когда-то читал книгу, где описывался пример то-ли какой-то библиотечной функции С, то-ли API-функции, в которую можно подставить любой объект (класс, структуру, int-ы всякие, хоть что) и быстро обнулить поля этого объекта. А теперь, хоть убей, не могу вспомнить название этой замечательной функции. Подскажите!

  Вверх
Dark Elf
Дата 14.9.2005, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Может быть
Код

void ZeroMemory(
  PVOID Destination,
  SIZE_T Length
);

?


--------------------
PM MAIL WWW ICQ Skype GTalk Jabber MSN   Вверх
_hunter
Дата 14.9.2005, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



ZeroMemory() или FillMemory()


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
bilbobagginz
Дата 14.9.2005, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

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



memset()


--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
chaos
Дата 14.9.2005, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

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



или как нить так smile
Код

for (BYTE *pFree = pObj, int i = 0; i < sizeof(*pObj); pFree[i] = 0, i++);


Это сообщение отредактировал(а) chaos - 14.9.2005, 11:42
PM WWW   Вверх
Dreamer_0x01
Дата 14.9.2005, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


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

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



угу. И шаблонами такую конструкцию обернуть и в функцию запихать ;)


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
Crait
Дата 14.9.2005, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



На Билдере, по крайней мере, всё это приводит к глюкам,
если в классе имеются виртуальнае методы smile

Это сообщение отредактировал(а) Crait - 14.9.2005, 14:57
PM MAIL   Вверх
_hunter
Дата 14.9.2005, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



угу. ты б еще память ядра обнулил. и удивлялся бы -- а почему все завернулось...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Crait
Дата 14.9.2005, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



_hunter, кому адресована твоя реплика ?
PM MAIL   Вверх
_hunter
Дата 14.9.2005, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



тебе smile


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Crait
Дата 14.9.2005, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Так с чего ты взял, что я удивляюсь ?
PM MAIL   Вверх
_hunter
Дата 14.9.2005, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



с последнего поста smile ( того, на который я ответил )


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Crait
Дата 14.9.2005, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я не удивляюсь, но предостерегаю (в отличие от других ответивших)
от обнуления _всех_ данных класса.
PM MAIL   Вверх
Mayk
Дата 14.9.2005, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

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



В BSD есть еще ф-ция bzero. Некоторые компиляторы определяют её примерно как
Код

#define bzero(ptr, sz) (memset((ptr),0,(sz)))

Её не определяют не все виндозные компиляторы впрочем. Но вот в юнихах...

Цитата(SergeCpp @ 14.9.2005, 16:09)
STOSD

smile Тогда уж x ^= x;



--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
JoyEx
Дата 14.9.2005, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дядя
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 21.6.2005
Где: Москва, РФ

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



Цитата(Crait @ 14.9.2005, 14:55)
На Билдере, по крайней мере, всё это приводит к глюкам,
если в классе имеются виртуальнае методы 


для 1 класса попробуй так:

ZeroMemory( (BYTE *)Destination + 4, sizeof(Класс) - 4);



--------------------
Если ты уже никого не боишься, значит ты самый страшный 
PM IM ICQ AOL YIM MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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