Отправляет email-рассылки с помощью сервиса Sendsay

Уроки по C/C++

  Все выпуски  

Уроки по C/C++


Уроки по C/C++. Рассылки сайта progs.biz
Рассылка № 41
 
Начало > C++ > Основы C++ > Урок 41

Пауль Уилтон. JavaScript. Основы.
Пауль Уилтон. JavaScript. Основы
Заказать на Озоне

Подробнее


Полные версии уроков (с картинками): урок 41.

C/C++
Урок 41. Функция memset

Функция memset предназначена для заполнения памяти по некоторому адресу некотором значением.

Вот пример использования этой функции:

#include <iostream>
using namespace std;
class A{
public:
    int a;
    float b;
    A(){
        a = 10;
        b = 3.14;
    }
};
void main()
{
    A z;
    cout << "a = " << z.a << ", b = " << z.b << "\n";
    memset(&z, 0, sizeof(z));
    cout << "a = " << z.a << ", b = " << z.b << "\n";
}

Как вы видите, мы тут объявили некоторый класс, в конструкторе которого записали в переменные класса некоторые ненулевые значения. Естественно, что именно эти значения (10 и 3.14) мы и увидим при первом вызове cout.

Затем мы вызываем memset. У нее три параметра. Первый - это начальвый адрес в памяти, с которого происходит заполнение. У нас это адрес экземпляра z нашего класса A. Второй параметр определяет, чем мы заполняем память. Тут мы указали 0. И, наконец, третий параметр определяет, сколько памяти (в байтах) мы заполняем. Так как мы обнуляем всю переменную z, то мы просто указываем ее размер (sizeof(z)).

После вызова memset и вызова cout мы увидим, что переменные класса обратились в нолики. Это, собственно, и есть ожидаемый результат.

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2006 сайт progs.biz
© 2002-2006 Игорь Алексеев

В избранное