Как использовать функцию c memset в C++: подробный гайд
Функция `memset` в языке C используется для заполнения блока памяти определенным значением. Синтаксис функции выглядит следующим образом:
void *memset(void *ptr, int value, size_t num);
- `ptr` – указатель на блок памяти, который нужно заполнить;
- `value` – значение, которым будет заполнен блок памяти (преобразуется к типу `unsigned char`);
- `num` – количество байт, которое нужно заполнить.
Пример использования функции `memset`:
c
#include
#include
int main() {
// Создаем массив из 10 целых чисел
int arr[10] = {0};
printf("Исходный массив: ");
for(int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
// Заполнение массива числом 5
memset(arr, 5, sizeof(arr));
printf("\nЗаполненный массив: ");
for(int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
return 0;
}
Результат выполнения программы:
Исходный массив: 0 0 0 0 0 0 0 0 0 0
Заполненный массив: 5 5 5 5 5 5 5 5 5 5
В данном примере мы создали массив `arr` из 10 целых чисел и заполнили его значениями 0. Затем мы используем функцию `memset` для заполнения массива числом 5. В результате получаем массив, состоящий из 10 пятерок.
Важно отметить, что функция `memset` работает только с блоками памяти, то есть с массивами, структурами и другими данными, которые находятся в памяти. Если же нужно заполнить строку символов (тип `char *`), следует использовать функцию `strcpy` или `strncpy`.
c
#include
#include
int main() {
// Создаем строку из 10 символов
char str[10] = "hello";
printf("Исходная строка: %s\n", str);
// Заполнение строки символом 'a'
memset(str, 'a', sizeof(str));
printf("Заполненная строка: %s\n", str);
return 0;
}
Результат выполнения программы:
Исходная строка: hello
Заполненная строка: aaaaaaaa
Здесь мы создали строку `str` из 10 символов и заполнили ее словом "hello". Затем мы использовали функцию `memset` для заполнения строки символом 'a'. В результате мы получили строку, состоящую из 8 символов 'a'.