【C语言】memset() 内存填充块

时间:2023-02-02 19:06:27

????write in front????   

????大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流????

????2021年度博客之星物联网与嵌入式开发TOP5~2021博客之星Top100~2022博客之星Top63~作者周榜84﹣作者总榜704~阿里云专家博主 & 阿里云星级博主~掘金优秀创作者⇿InfoQ创作者⇿51CTO红人⇿全网访问量50w+????

????本文由 謓泽 原创 CSDN首发????如需转载还请通知⚠

????个人主页-​謓泽51Ctop的博客​????

????欢迎各位→点赞???? + 收藏⭐️ + 留言????

????系列专栏-​謓泽51Ctop的博客_【C语言】从0~1_51CTO博客​????
✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本????

 ????memset() - 内存填充块????

memset()指定头文件是:#include<string.h>

memset() 函数的声明方式如下 ???? 

void * memset ( void * ptr, int value, size_t num );

将ptr指向的内存块的第一个num字节设置为指定的值(解释为unsigned char)

参数讲解:↓

  • ptr→指向要填充的内存块的指针。
  • value→要设置的值。该值作为int类型传递,但该函数使用该值的unsigned char转换填充内存块。实际上就是我们所要初始化的内容。
  • num→要设置为该值的字节数。Size_t是一个无符号整型类型。

返回值返回的是:返回ptr。

????memset()代码示例????

示例代码如下 ????

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>

int main()
{
char str[] = " yysyyyds!";
memset(str, 'C', 1);
puts(str);
return 0;
}

【C语言】memset() 内存填充块

运行结果 ↓

Cyysyyyds 

????memset()源程序????

示例代码如下 ????

void * __cdecl memset (
void *dst,
int val,
size_t count
)
{
void *start = dst;

#if defined (_M_X64)

{


__declspec(dllimport)


void RtlFillMemory( void *, size_t count, char );

RtlFillMemory( dst, count, (char)val );

}

#else /* defined (_M_X64) */
while (count--) {
*(char *)dst = (char)val;
dst = (char *)dst + 1;
}
#endif /* defined (_M_X64) */

return(start);
}

说明 - 那么内存函数的讲解也就到这里就结束了,如果觉得对你有所帮助的话,还请来个三连阿!下期博客我们来讲述【C语言】程序的翻译环境和执行环境。