memset()用于用特定值填充内存块。
memset()函数的语法如下:
// ptr ==> Starting address of memory to be filled
// x ==> Value to be filled
// n ==> Number of bytes to be filled starting
// from ptr to be filled
void *memset(void *ptr, int x, size_t n);
注意,ptr是一个空指针,因此我们可以将任何类型的指针传递给此函数。
让我们来看一个简单的C语言示例,以演示如何使用memset()函数:
// C program to demonstrate working of memset()
#include
#include
int main()
{
char str[50] = "GeeksForGeeks is for programming geeks.";
printf("\nBefore memset(): %s\n", str);
// Fill 8 characters starting from str[13] with '.'
memset(str + 13, '.', 8*sizeof(char));
printf("After memset(): %s", str);
return 0;
}
输出:
Before memset(): GeeksForGeeks is for programming geeks.
After memset(): GeeksForGeeks........programming geeks.
说明: (str + 13)指向字符串“ GeeksForGeeks用于编程极客”的第一个空格(从0开始的索引),并且memset()设置字符“。”。从字符串的第一个”到给定字符串的8个字符位置,因此我们得到了如上所示的输出。
// C program to demonstrate working of memset()
#include
#include
void printArray(int arr[], int n)
{
for (int i=0; i
输出:
0 0 0 0 0 0 0 0 0 0
锻炼 :
预测以下程序的输出。
// C program to demonstrate working of memset()
#include
#include
void printArray(int arr[], int n)
{
for (int i=0; i
请注意,作为由memset的字符工作字符的整数包含多于一个字节(或字符)上面的代码不设置数组值至10。
但是,如果将10替换为-1,则得到-1值。因为在char和int的情况下-1的表示都包含全1。
参考: memset手册页(Linux)
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。