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 мы увидим, что переменные класса обратились в нолики. Это, собственно, и есть ожидаемый результат.
|