当前位置:首页 » 《资源分享》 » 正文

类字符串函数---内存函数的使用以及模拟实现(上)_执久呀的博客

14 人参与  2021年10月30日 07:43  分类 : 《资源分享》  评论

点击全文阅读


 目录

一、前言

二、本节重点

1.memcpy函数(内存拷贝)

memcpy函数的使用:

memcpy函数的模拟实现

1.memset函数(内存设置)

memset函数使用:


一、前言

        前面我们已经学习了字符串函数的使用和模拟实现,不过现在字符串函数的使用要告一了。

现在我们学习新的一篇内存函数的(和以前讲的malloc没有一毛钱关系),他们也是隶属于字符

类型里的(头文件也<string.h>),但是他们的使用方式和字符函数基本不同,所以我就把它们

单独分开来,内存函数的使用单位是内存,所以他没有类型的限制,故他可以设置任意类型的

数据,比字符串函数要好许多,这也是字符串函数的局限性。


二、本节重点

1.memcpy函数的使用和模拟实现

2.memset函数的使用以及注意事项

3.memmove函数的使用和模拟实现

4.memcmp函数的使用和模拟实现


1.memcpy函数(内存拷贝)

 函数的参数形式:void*memcpy(void*destination,const void*source,size_t num);

其中num表示的是设置的字节数,注意因为他是无类型的指针,所以在使用之前

必须先强制类型转化,且一般是强制转化为(char*)类型(因为单位是字节)。

memcpy函数的使用:

##include<stdio.h>
#include<string.h>

int main()
{
	int arr1[20] = { 1, 2, 3, 4, 5, 6 };
	int arr2[10] = { 7, 8, 9, 10, 11, 12 };
	memcpy(arr1, arr2, 40);
	for (int i = 0; i < 4; i++)
	{
	printf("%d", arr1[i]);
	}
	return 0;

memcpy函数的模拟实现

#include<stdio.h>

#include<assert.h>
void*my_memcpy(void*dest,void*src,size_t num)
 {
   assert(dest&&src);

  char*ret=dest;

   while(num--)
   { 
     *(char*)dest=*(char*)src;

     ++(char*)dest;

     ++(char*)src;

   }
   return ret;
 }

int main()
{
  char arr1[40]={"kong chao yyds"};

  char arr2[40]={"yang ying"};

  char*kc=my_memcpy(arr1,arr2,9*sizeof(char));

  puts(arr1);//或者puts(kc);

  return 0;

}

1.memset函数(内存设置)

函数的参数形式 :

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

其中ptr是所要设置的起始位置,若是数组则也可以用数组名来代替,value是所要

设置成的内容类型是整形,但是也可以是字符,因为字符所对应得ascll码值整数,

且字符在存储时也是以ascll的形式存储的。

#include<stdio.h>

#include<string.h>

int main()
{
	char arr1[10] = { 0 };

	memset(arr1, '$', 6);

	printf("%s", arr1);
	
	return 0;
}

注意数组的单位是int 还是char如果是char,设置个数*1,int是 设置个数*4

#include<stdio.h>

#include<string.h>

int main()
{
	int arr1[20] = { 0 };

	memset(arr1, 1, 10);

for(int i=0;i<10;i++)
{
   printf("%d", *(arr1+i));
}
	
	return 0;
}

这个代码这个本想设置十个1,但是呢他没看这是int类型,导致他其实只设置了10/4.0=2.5个字节

,所以我们在内存设置的时候要注意数组的类型,这是十分重要的

下篇更精彩,xdm,一键三连是支持


点击全文阅读


本文链接:http://zhangshiyu.com/post/30248.html

函数  设置  类型  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 完结文我在恐怖游戏开裁缝铺列表_完结文我在恐怖游戏开裁缝铺(林慕秋)
  • 全书免费谢清禾姜博诚_谢清禾姜博诚全书免费
  • 离婚后我收获真爱,前妻却快死了(秦落音陆轩),离婚后我收获真爱,前妻却快死了
  • 老公把上亿豪宅送养妹后,我把人和房都拆了(顾思思顾言洲)全书免费_(顾思思顾言洲)老公把上亿豪宅送养妹后,我把人和房都拆了后续(顾思思顾言洲)
  • 沈星悦傅时安_沈星悦傅时安
  • 离婚后,居然还能以旧换新?(陈汉李淼淼李思)全书浏览_离婚后,居然还能以旧换新?全书浏览
  • 完结文给女团主播狂刷百万反被骂穷逼,我反手送她队友出道列表_完结文给女团主播狂刷百万反被骂穷逼,我反手送她队友出道(秦薇)
  • 全书浏览老公将我第十个孩子送给情人后,我果断改嫁他绝嗣干爹(苏云遮盛炽)_老公将我第十个孩子送给情人后,我果断改嫁他绝嗣干爹(苏云遮盛炽)全书结局
  • 全文无边怨恨是她活下来的最大动力(江寒静顾榕赫)列表_全文无边怨恨是她活下来的最大动力
  • 全文爸爸死后,消失二十年的妈妈带着儿子回来跟我争家产(顾霆锋顾青卿)列表_全文爸爸死后,消失二十年的妈妈带着儿子回来跟我争家产
  • 霍晚清赵旭然_霍晚清赵旭然
  • 弟弟看的破茧时光沉淀后的深情相拥林悦苏然全书在线

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1