[C++]数组处理相关函数(memcpy/memset等)
头文件:string.h或者memory.h
【1】void *memcpy(void *dest, const void *src, size_t n);//数组元素拷贝
功能:从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中
【2】void *memset(void *s, int ch, size_t n);//重置数组元素与初始化
功能:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法
#include<iostream>
#include<string.h>
using namespace std; int main(){
int array_a[12] = {23,45,6,7,4776,834,99954};
int array_b[12]; memset(array_b, -1, sizeof(array_a)); //将数组b的各元素初始化为-1 memcpy(array_b, array_a+1, sizeof(int)*6);
for(int i=0;i<12;i++){
printf("%d ", array_b[i]);
}
return 0;
}

【3】int memcmp(const void *buf1, const void *buf2, unsigned int count);//数组元素比较
功能:比较内存区域buf1和buf2的前count个字节。注意:按照字节比较的
返回值:当buf1<buf2时,返回值小于0;当buf1==buf2时,返回值=0;当buf1>buf2时,返回值大于0
【4】void *memmove( void* dest, const void* src, size_t count );//
功能:由src所指内存区域复制count个字节到dest所指内存区域。
memmove用于从src拷贝count个字节到dest,如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中。
但复制后src内容会被更改。但是当目标区域与源区域没有重叠则和memcpy函数功能相同。
// memmove.c
#include <stdio.h>
#include <string.h> int main(void){
char s[]="Golden Global View";
memmove(s,s+7,strlen(s)+1-7);
printf("%s",s);
getchar();
return 0;
}
=>output:
Global View
[C++]数组处理相关函数(memcpy/memset等)的更多相关文章
- 字符串数组初始化0 与memset 0 效率的分析
转自:http://www.xuebuyuan.com/1722207.html 结合http://blog.sina.com.cn/s/blog_59d470310100gov8.html来看. 最 ...
- C++语法之-------strcpy,memcpy,memset
1.strcpy 原型:extern char *strcpy(char *dest,char *src); 用法:#i nclude 功能:把src所指由NULL结束的字符串复制到dest所指的数组 ...
- strcpy, memcpy, memset函数
一. strcpy函数 原型声明:char *strcpy(char* dest, const char *src); 头文件:#include <string.h> 和 #inclu ...
- strcpy,memcpy,memset函数实现
strcpy 实现,只能拷贝字符串 char* strcpy(char* des,const char* source) { char* r=des; assert((des != NULL) &am ...
- [VC]strcpy memcpy memset区别与简介
strcpy 原型:extern char *strcpy(char *dest,char *src); 用法:#include <string.h> 功能:把src所指由NULL结束的字 ...
- 41.内存函数实现(memcpy,memset,memmove,memicmp,memchr.memccpy)
memcpy #include <stdio.h> #include <stdlib.h> #include <memory.h> void * mymemcpy( ...
- 数组复制函数memcpy和strcpy
strcpy和memcpy主要有以下3方面的区别.1.复制的内容不同.strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组.整型.结构体.类等.2.复制的方法不同.strcpy不需 ...
- php 数组指针相关函数current(),next(),prev(),end()
mixed current(array target_array) current()函数返回位于target_array数组当前指针位置的数组值.与next().prev().和end()函数不同, ...
- php创建生成数组的相关函数
php中和数组创建生成的函数有很多,用于定义数组的函数array(),数组合并函数array_combine(),还有array_fill(),array_fill_keys(),range()等等. ...
随机推荐
- Wireshark:couldn't run dumpcap in child process(附带Linux下探索过程)
之前都是直接使用Kali里面安装好的Wireshark和Win下的,Ubuntu的来个小计 PS:解决方法不重要,我觉得更重要的是这个摸索的过程 解决方法 # 安装wireshark sudo apt ...
- redux源码解析-redux的架构
redux很小的一个框架,是从flux演变过来的,尽管只有775行,但是它的功能很重要.react要应用于生成环境必须要用flux或者redux,redux是flux的进化产物,优于flux. 而且r ...
- staitc
一.static和非static变量 1. static 修饰的变量称为类变量或全局变量或成员变量,在类被加载的时候成员变量即被初始化,与类关联,只要类存在,static变量就存在.非static修饰 ...
- Java 帝国之建造者模式
Java 帝国之建造者模式 原创: 王钦誉 码农翻身 今天 本文来自王钦誉的投稿,老刘做了较大修改. 原文地址: https://xiaoqinyu0000.github.io/2018/06/11/ ...
- parallels tools 安装
│ - kernel-devel-2.6.32-358.el6.x86_64 │ │ - dkms
- HTML学习笔记Day10
一.Form表单补充(收集用户信息) 1.button按钮(不进行提交) 1)语法1:<input type="button" value="按钮内容" ...
- 二进制部署 Kubernetes 集群
二进制部署 Kubernetes 集群 提供的几种Kubernetes部署方式 minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernet ...
- qml: 模块定义与使用
1. 模块的定义qmldir Module MyModule MyTest 1.0 MyTest.qml MyTest 1.3 MyTest.qml 2. 导入: 使用qrc: RESOU ...
- git lg 使用 转
命令: git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yello ...
- python 面向对象(五)约束 异常处理 MD5 日志处理
###############################总结###################### 1.异常处理 raise:抛出异常 try: 可能出现错误代码 execpt 异常类 a ...