【C】内存函数——知识点大全(精炼,全面,基础)

简介: 【C】内存函数——知识点大全(精炼,全面,基础)

一.内存函数总览

image.png

1.内存函数的头文件

#include<string.h>

二.memcpy(内存拷贝函数)

特性:限制字节数不限制类型

image.png应用场景: 

image.png

image.png

1.memcpy的模拟实现

image.png

2.情景1:自己拷贝自己的一部分

PS:若不想分类讨论,直接用memmove函数

分析:有两种情形

  • 目标区域在前面,从源区域前往后拷贝
  • 目标区域在后面,从源区域后往前拷贝

原理:保证重合的部分,能够优先从该方向上拷贝出来

原理图示:

image.png

直接情况分类:

image.png

代码展示:

 image.png

三.memmove(处理重叠内存的内存拷贝函数)

image.png

特点:memmove不用像memcpy一样考虑源区域头地址与目标区域头地址的位置关系

四.memcmp(内存比较函数)

image.png

memcmp的返回值:

image.png

使用场景:

image.png

1.比较memcmp和strcmp

strcmp限定了字符指针类型(char*),而memcmp不限定类型(void*)

image.png

五.memset(内存设置函数)

image.png


PS:value为设置的值,num为修改的前num个字符个数(字节个数)

num的赋值规则:

  •  要将参数化为二进制填入

使用场景:

image.png

PS:一个int数组,一个元素有4个字节;

这里修改8个字节/9个字节,均将该元素改为0。

相关文章
|
29天前
|
C语言 C++
C语言 之 内存函数
C语言 之 内存函数
32 3
|
30天前
|
存储 缓存 算法
JVM核心知识点整理(内存模型),收藏再看!
JVM核心知识点整理(内存模型),收藏再看!
JVM核心知识点整理(内存模型),收藏再看!
|
21天前
|
程序员 C++ 容器
在 C++中,realloc 函数返回 NULL 时,需要手动释放原来的内存吗?
在 C++ 中,当 realloc 函数返回 NULL 时,表示内存重新分配失败,但原内存块仍然有效,因此需要手动释放原来的内存,以避免内存泄漏。
|
4月前
|
存储 算法 安全
Java面试题:Java内存模型及相关知识点深度解析,Java虚拟机的内存结构及各部分作用,详解Java的垃圾回收机制,谈谈你对Java内存溢出(OutOfMemoryError)的理解?
Java面试题:Java内存模型及相关知识点深度解析,Java虚拟机的内存结构及各部分作用,详解Java的垃圾回收机制,谈谈你对Java内存溢出(OutOfMemoryError)的理解?
68 0
|
1月前
|
存储 程序员 编译器
C语言——动态内存管理与内存操作函数
C语言——动态内存管理与内存操作函数
|
1月前
|
编译器 C语言 C++
详解C/C++动态内存函数(malloc、free、calloc、realloc)
详解C/C++动态内存函数(malloc、free、calloc、realloc)
137 1
|
1月前
|
程序员 C语言
C语言内存函数精讲
C语言内存函数精讲
|
17天前
|
存储 C语言
【c语言】字符串函数和内存函数
本文介绍了C语言中常用的字符串函数和内存函数,包括`strlen`、`strcpy`、`strcat`、`strcmp`、`strstr`、`strncpy`、`strncat`、`strncmp`、`strtok`、`memcpy`、`memmove`和`memset`等函数的使用方法及模拟实现。文章详细讲解了每个函数的功能、参数、返回值,并提供了具体的代码示例,帮助读者更好地理解和掌握这些函数的应用。
16 0
|
30天前
|
C语言 C++
c语言回顾-内存操作函数
c语言回顾-内存操作函数
39 0
|
1月前
|
存储 C语言 C++
来不及哀悼了,接下来上场的是C语言内存函数memcpy,memmove,memset,memcmp
本文详细介绍了C语言中的四个内存操作函数:memcpy用于无重叠复制,memmove处理重叠内存,memset用于填充特定值,memcmp用于内存区域比较。通过实例展示了它们的用法和注意事项。
62 0
下一篇
无影云桌面