memset函数
头文件:
#include <string.h>
函数原型:
void* memset(void* s,int c,size_t n);
memset()函数是按字节对内存块进行初始化的
注意:不能用memset()函数将int数组初始化为0和-1之外的其他值
int arr[8];
初始化为0,memset(arr, 0, sizeof(arr));
初始化为-1,memset(arr, -1, sizeof(arr));
用memset()函数j将arr初始化为{-1,-1,-1,-1,-1,-1,-1,-1};然而memset(num,-1,8);这样写是不对的,要写成memset(num,-1,sizeof(int)*8);因为一个int占4个字节
#include <stdio.h>
#include <string.h>
int main()
{
int arr[10];
int i;
memset(arr,-1, sizeof(arr));
for (i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
输出:
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1
#include <stdio.h>
#include <string.h>
int main()
{
int arr[10];
int i;
memset(arr,1, sizeof(arr));
for (i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
输出:
16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009
#include <stdio.h>
#include <string.h>
int main()
{
char arr[] = "hello world";//一个char占1个字节
memset(arr, '*', 5);
printf("%s\n", arr);
return 0;
}
输出:
***** world