部分函数总结
来源:互联网 发布:mac强制关掉进程 编辑:程序博客网 时间:2024/06/16 00:25
ZeroMemory
声明:void ZeroMemory( PVOIDDestination,SIZE_T Length );
参数:Destination :指向一块准备用0来填充的内存区域的开始地址。
Length :准备用0来填充的内存区域的大小,按字节来计算。
返回值:无
作用:ZeroMemory只是将指定的内存块清零。(美国微软公司的软件开发包SDK中的一个宏。 其作用是用0来填充一块内存区域。ZeroMemory只能用于Windows系统,而memset还可用于其他系统)
memset():
别称:初始化函数
头文件:<memory.h>或<string.h>
原型:void *memset(void *s, int ch, size_t n);
返回值:无返回
功能:将s中当前位置后面的n个字节(typedef unsigned int size_t )用ch替换并返回s。即是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法
memcpy():
头文件:C语言:<string.h> / C++:<cstring>
原型:void *memcpy(void *dest, const void *src, size_t n);
返回值:函数返回指向dest的指针。
功能:从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中
说明:1.source和destin所指的内存区域可能重叠,但是如果source和destin所指的内存区域重叠,那么这个函数并不能够确保source所在重叠区域在拷贝之前不被覆盖。而使用memmove可以用来处理重叠区域。函数返回指向destin的指针.
2.如果目标数组destin本身已有数据,执行memcpy()后,将覆盖原有数据(最多覆盖n)。如果要追加数据,则每次执行memcpy后,要将目标数组地址增加到你要追加数据的地址。
strcpy():
头文件:string.h
原型:char *strcpy(char* dest, const char *src);
返回值:返回指向dest的指针
功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。(strcpy成功后自动加结束符)
1、复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。
2、复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy则是根据其第3个参数决定复制的长度。
3、用途不同。通常在复制字符串时用strcpy,而需要复制其他类型数据时则一般用memcpy
strncpy():
头文件:string.h
原型:char *strncpy(char *dest,char *src,size_t n);
返回值:返回dest的指针
功能:(c/c++)复制字符串src中的内容(字符,数字、汉字....)到字符串dest中,复制多少由size_tn的值决定
说明:如果src的前n个字符不含NULL字符,则结果不会以NULL字符结束。如果n<src的长度,只是将src的前n个字符复制到dest的前n个字符,不自动添加'\0',也就是结果dest不包括'\0',需要再手动添加一个'\0'。如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符长度+'\0'。(strncpy成功后不自动加'\n')
strncpy与strcpy:
strcpy只是复制字符串,但不限制复制的数量,很容易造成缓冲溢出。strncpy要安全一些。
strncpy能够选择一段字符输出,strcpy则不能
memmove():
头文件:<string.h>
原型:void *memmove( void* dest, const void* src, size_t count );
返回值:无返回
共能:用于从src拷贝count个字节到dest,如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中。但复制后src内容会被更改。
说明:当目标区域与源区域没有重叠则和memcpy函数功能相同
- 部分函数总结
- PHP部分时间函数总结
- 黑马程序员——函数部分总结
- 汇编总结-第二部分_3_使用函数
- JS运动中的部分实用函数总结
- C++学习总结系列--函数部分
- C++时间函数用法总结(部分)
- java字符串及数学函数部分总结
- C语言字符串函数总结(部分常见字符串函数)
- 部分总结
- 部分总结
- 使用cairo绘制图形的部分函数总结
- 使用cairo绘制图形的部分函数总结
- 黑马程序员------C语言函数部分总结(一)
- 黑马程序员------C语言函数部分总结(二)
- 使用cairo绘制图形的部分函数总结
- JavaScript学习总结(四)function函数部分
- JavaScript学习总结(四)function函数部分
- 时间监视器 StopWatch
- 关于AES加解密
- 在linux中安装JDK和tomcat(一):在虚拟机上安装linux
- 文件IO编程十
- SPlay 伸展树
- 部分函数总结
- org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
- C++抽象编程——算法分析(1)——选择排序
- 关于Java异常10件事儿<下>20170511
- Git冲突:commit your changes or stash them before you can merge.
- Java 9 中的 9 个新特性
- Java的堆和栈的内存分布
- 安装wamp集合环境过程中提示丢失msvcr110.dll的解决方法
- Mac下好用的工具推荐(偏开发)