第16讲:C语⾔内存函数
目录memcpy使⽤memmove使⽤memset函数的使⽤memcmp函数的使⽤1.memcpy1功能memcpy 是完成内存块拷⻉的不关注内存中存放的数据是啥。函数 memcpy 从 source 的位置开始向后复制 num 个字节的数据到 destination 指向的内存位置。如果 source 和 destination 有任何的重叠复制的结果都是未定义的。内存重叠的情况使⽤ memmove 就⾏。内存重叠的情况memcpy(arr2,arr,20);memcpy 的使⽤需要包含 string.h 。2参数destination 指针指向⽬标空间拷⻉的数据存放在这⾥。source 指针指向源空间要拷⻉的数据从这⾥来。num 要拷⻉的数据占据的字节数。3返回值拷⻉完成后返回⽬标空间的起始地址。2.memmove1功能memmove函数也是完成内存块拷⻉的。和memcpy的差别就是memmove函数处理的源内存块和⽬标内存块是可以重叠的也可以处理不重叠的。memmove的使⽤需要包含 string.h 。2参数同 memcpy。3返回值拷⻉完成后返回⽬标空间的起始地址。3.memset1功能memset 函数是⽤来设置内存块的内容的将内存中指定⻓度的空间设置为特定的内容。memset 的使⽤需要包含 string.h 。2参数ptr 指针指向要设置的内存空间也就是存放了要设置的内存空间的起始地址。value 要设置的值函数将会把 value 值转换成 unsigned char 的数据进⾏设置的。也就是以字节为单位来设置内存块的。num 要设置的内存⻓度单位是字节。3返回值返回的是要设置的内存空间的起始地址。4总结当有⼀块内存空间需要设置内容的时候就可以使⽤memset函数值得注意的是memset函数对内存单元的设置是以字节为单位的。4.memcmp1功能⽐较指定的两块内存块的内容⽐较从ptr1和ptr2指针指向的位置开始向后的num个字节。注memcmp 的使⽤需要包含 string.h 。2参数ptr1 指针指向⼀块待⽐较的内存块。ptr2 指针指向另外⼀块待⽐较的内存块。num 指定的⽐较⻓度单位是字节。3返回值ptr1 指向的内存空间的数据大于 ptr2 指向的内存空间的数据返回的值大于 0。等于 0 和小于 0 同理。