【C语言】 实现memset

#include<stdio.h>
#include<assert.h>

void *my_memset(void *arr,int c,size_t n)
{
	assert(arr);
	char *dest = (char *)arr;
	int i = 0;
	for(i = 0;i < n;i++)
	{
		*(dest + i) = c;
	}
	return arr;
}
int main()
{
	char arr[10];
	int i = 0;
	memset(arr,0,10);
	for(i = 0;i < 10;i++)
	{
		printf("%d ",arr[i]);
	}
	printf("\n");
	return 0;
}
时间: 2024-10-10 13:26:10

【C语言】 实现memset的相关文章

(C/C++) memset

C语言: memset   extern void *memset(void *buffer,int c,int count);   #include <string.h>   功能:把buffer所指内存区域的前count个字节设置成字符c   说明:返回指向buffer的指针. char a[100];          memset(a,'\0',sizeof(a)); C#: byte[]   test =   new   byte[65536]; Array.Clear(test,0

Buffer -nodejs

纯 JavaScript 对 Unicode 友好但是无法很好地处理二进制数据.当我们面对类似 TCP 流或文件系统时,是需要处理八位流的.Node 有几种操作.创建以及消费八位流的策略.原始数据保存在 Buffer 类的实例中.一个 Buffer 实例类似于一个整数数组,但对应着 V8 堆之外的一个原始内存分配区域.一个 Buffer 的大小不可变.Buffer 类是一个全局的类,是一个比较罕见的不需要 require('buffer') 就可以使用的类.在Buffers和JavaScript

nodejs api 中文文档

文档首页 英文版文档 本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可. Node.js v0.10.18 手册 & 文档 索引 | 在单一页面中浏览 | JSON格式 目录 关于本文档 稳定度 JSON 输出 概述 全局对象 global process console 类: Buffer require() require.resolve() require.cache require.extensions __filename __dirname module e

【ThinkingInC++】31、嵌套友元

/** * 功能:嵌套友元 * 时间:2014年8月21日07:21:29 * 作者:cutter_point */ #include<iostream> #include<cstring> //为了初始化时使用memset() #include<cstdlib> using namespace std; const int sz=20; struct Holder { private: int a[sz]; //一个整形数组 public: void initiali

2018/10/03-字符串指令(重复指令、操作数据缓冲区指令)、rep与movx指令-《恶意代码分析实战》

重复指令是一组操作数据缓冲区的指令.数据缓冲区通常是一个字节数组的形式,也可以是单字或者双字.(Intel'称这些指令为字符串指令) 最常见的数据缓冲区操作指令是movsx.cmps.stosx和scasx,其中x可以是b.w后者d,分别表示字节.字和双字.这些指令对任何形式的数据都有效. 在这些操作中,使用ESI和EDI寄存器.ESI是源索引寄存器,EDI是目的索引寄存器.还有ECX用作计数的变量. 这些指令还需要一个前缀,用于对长度超过1的数据做操作.movsb指令本身只会移动一个字节,而不

C语言学习笔记---好用的函数memcpy与memset

这个主要用于我个人的学习笔记,便于以后查询,顺便分享给大家. 想必在用C的时候难免会与数组,指针,内存这几样东西打交道,先以数组为例,例如有一个数组int a[5] = {1, 2, 3, 4, 5},我们要将数组a里面的数据复制到数组b中,一般刚刚接触C语言的我们会怎么做?我们一般会想到用循环来做吧 1 int i; 2 int a[5] = {1, 2, 3, 4, 5}, b[5]; 3 4 for(i = 0; i < 5; i++) 5 { 6 b[i] = a[i]; 7 } 但是,

C语言sscanf和sprintf输入输出使用及Strlen、Memset解释

sscanf() - 从一个字符串中读进与指定格式相符的数据. swscanf()- 用于处理宽字符字符串,和sscanf功能相同 通过学习和使用个人认为,在字符串格式不是很复杂,但是也并不简单的时候用这个函数比较合适,这个尺度就要靠自己把握了,字符串不是很复杂,但自己写个处理的函数比较麻烦,效率也不高,就用这个函数,如果字符串很复杂,那就用正则表达式吧. 不多说了,看看下面这些介绍和列子吧! 名称:sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: Int sscanf

[C/C++基础] C语言常用函数memset的使用方法

函数声明:void *memset(void *s, int ch, size_t n); 用途:为一段内存的每一个字节都赋予ch所代表的值,该值采用ASCII编码. 所属函数库:<memory.h> 或者 <string.h> 参数:(1)s,开始内存的地址:(2)ch和n,从地址s开始,在之后的n字节长度内,把每一个字节的值都赋值为n. 使用举例: 代码如下 编译运行结果 说明: 该函数最常用的用途就是将一段新分配的内存初始化为0.例如我们代码的第9-10行. 需要注意的是,函

c语言memset()函数

1)名称:memset()函数 2)别称:char型初始化函数 3)功能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作 4)用法: void *memset(void *s, char ch, unsigned n); 5)作用:在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法. 6)代码示例: #include #include #include int main(

c语言memset源码

c语言memset源码 一.用法 void *memset(void *s, int ch, size_t n);作用:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作.不知道有没有像我一样把memset当作万能的初始化工具,例如:int arr[n];memset(arr,1,n*sizeof(int));这样得到的arr数组一定不是全0,而是16843009,下面解释原因.首先,变量类型的本质只是标志