mokongking

C语言中me开头的函数的使用

C语言中,有一系列的函数以me结尾,如memcpy、memmove、memset等。这些函数都是用来操作内存的。

其中,memcpy函数用于将一个内存地址的内容复制到另一个内存地址,

memmove函数也是用于将一个内存地址的内容复制到另一个内存地址,但是它可以处理内存重叠的情况,而memcpy则不能。

memset函数用于将一个内存地址的内容全部设置为某个值。

以下是这些函数的简单示例:

复制代码
#include <stdio.h>
#include <string.h>

int main () {
   char str1[20] = "hello";
   char str2[20] = "world";
   char str3[20];
   char str4[20];

   /* 复制 str1 到 str3 */
   memcpy(str3, str1, strlen(str1)+1);
   printf("memcpy(str3, str1, strlen(str1)+1): %s\n", str3);

   /* 复制 str2 到 str4 */
   memmove(str4, str2, strlen(str2)+1);
   printf("memmove(str4, str2, strlen(str2)+1): %s\n", str4);

   /* 设置 str1 为 'r' */
   memset(str1, 'r', strlen(str1));
   printf("memset(str1, 'r', strlen(str1)): %s\n", str1);

   return 0;
}
//memcpy和memmove函数的第三个参数是要复制的字节数。因为字符串以'\0'结尾,所以要将'\0'也复制过去,所以要strlen(str1)加1。而memset函数的第三个参数是要设置的字节数,所以不需要加1。
//memset函数只会将指定的字节数设置为某个值。在这个例子中,strlen(str1)返回的是字符串str1的长度,所以memset函数只会将字符串str1的前5个字符设置为'r',而不是整个str1的内存都设置为'r'。
复制代码

 

posted on   虎啸岳林  阅读(106)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用

导航

统计信息

点击右上角即可分享
微信分享提示