memset和memcpy函数

2023-11-09

memset函数

原型:void *memset(void *s, int ch, size_t n);
作用:将s所指向的内存中的前n个字节的内容全部设置为ch指定的ASCII值,这个函数通常为新申请的内存做初始化工作。一般用于结构体和数组的初始化。

  1. memset中的第三个参数一定要使用sizeof操作符,因为每个系统下对类型长度的定义可能不一样。
  2. memset中的第一个参数一定要是一个已知的、已经被分配内存的地址,否则会出错。
  3. 对于单字节数据类型(char)可以初始化为任意支持的值,都没有问题,但是对于非多字节数据类型只能初始化为0,而不能初始化成别的初值,否则容易出错。

memset的效率很高,比手动赋值要高的多,比bzero也要高,尤其大数组的情况。

我是这样实现的:

void* _memset(void* dst,int val, size_t count)
{
    assert(dst!=NULL);
    char* tmpdst = (char*)dst;
    while(count--)
    {
        *tmpdst = (char
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

memset和memcpy函数 的相关文章

随机推荐

  • 华为OD机试真题Java_2022-2023-题目0189-最多等和不相交连续子序列

    最多等和不相交连续子序列 题目描述 给定一个数组 我们称其中连续的元素为连续子序列 称这些元素的和为连续子序列的和 数组中可能存在几组连续子序列 组内的连续子序列互不相交且有相同的和 求一组连续子序列 组内子序列的数目最多 输出这个数目 输
  • 笔记24-2(C语言进阶 程序环境和预处理)

    目录 注 预定义详解 预处理符号 举例 使用例 define define 定义标识符 define定义宏 括号很重要 define 替换规则 和 带副作用的宏参数 宏和函数的对比 命名约定 undef 命名行定义 条件编译 常见的条件编译
  • 宏定义 类模板 及类模板的全特化

    如下所示 定义一个宏函数 只要传入类型名 即可生成一个类模板 include
  • 图灵1月书讯:阅新书辞旧岁,览经典迎新年

    原文链接 本期小编为您特别推荐的是 说服人要懂心理学 著名行为心理学家 演讲大师最新力作 七大动力 丰富实例 教你做个说服高手 Susan M Weinschenk拥有行为心理学博士学位 在35年的职业生涯中 她一直致力于把心理学领域对人类
  • c语言把一个数组里面的部分值直接复制到另外一个数组

    头文件是 include
  • MATLAB实现费诺编码的计算与分析

    一 实验目的 1 理解霍费诺编码的原理 2 掌握费诺编码的方法和步骤 3 熟悉费诺编码的效率 4 本实验用Matlab语言编程实现费诺 Fano 编码 二 实验环境 windows XP MATLAB 7 三 实验原理 费诺编码算法如下 在
  • 【实战 01】心脏病二分类数据集

    目录 1 获取数据集 2 数据集介绍 3 数据预处理 4 构建随机森林分类模型 5 预测测试集数据 6 构建混淆矩阵 7 计算查全率 召回率 调和平均值 8 ROC曲线 AUC曲线 注 每一章节可以为一个py文件 4 5 6 7写在同一个文
  • OAuth2 使用Zuul细粒度权限控制笔记

    先置条件 基于我的项目 假设我现在 有gateway service 网关 auth service 权限认证 game service 游戏 ad service 广告 使用相关版本如下 版本搭配参考 https github com a
  • 吃老本

    一转眼毕业都快10年了 感觉加入现在这个公司以来 技术上没什么进展 还在吃老本 都是毕业后前5年的时候学到的东西 晚上回去以后 也没有热情看书了 只想休息 奉劝那些刚刚毕业的同学 趁着年轻 有大把时间 多看书 多钻研一下技术 别像我这样在这
  • 由Eclipse中Ctrl+H快捷键失效而引申出的一系列问题

    前面说过新公司用idea 但是用了一段时间后发现里面的操作 界面 快捷键等等和我的习惯实在相差太大 于是最近又把eclipse下载了回来 但是在设置环境的时候却出现了一些伤脑筋的小问题 首先第一点问题是一些快捷键失效了 比如CTRL H 这
  • 数字图像处理 -灰度变换 之 gamma变换(gamma transformation)

    Reference https blog csdn net zhoufan900428 article details 12709361 The gamma transformation is different from log tran
  • HTTP的8种请求方法和用途

    一 什么是HTTP 超文本传输协议 Hyper Text Transfer Protocol HTTP 是一个简单的请求 响应协议 它通 常运行在TCP之上 它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应 请求 和响应消息的
  • 2023.8.31题目小记

    1 费解的开关 1208 翻硬币 AcWing题库 1 使用位进制优化 2 由于第一行如果已经确定下来则后面的每一行都可以确定 可以将第一行的所有方法全部记录下来PS 32的二进制为100000一共六位 而此就已经可以使用位运算将五位开关全
  • 哪些数组操作会影响vue视图的更新?改变数组本身的方法有哪些?附面试题1

    多选题 在vue中 下列哪些选项对数组的操作触发视图更新 A push B shift C concat D reverse 先独立思考 正确答案 A B D 解析 c选项 concat 返回的是一个新的数组 需要用新数组替换原数组才能实现
  • 乐高选择亚马逊云科技 为客户创造卓越体验

    近日 亚马逊云科技宣布 全球知名玩具制造商乐高集团 the LEGO Group 选择亚马逊云科技作为首选云服务提供商 加速推进数字化战略 打造充满创意 乐趣和互动性的玩乐新体验 基于亚马逊云科技全球一致的基础设施 以及计算 存储 数据库
  • Win7上搭建Linux环境

    自制编程语言的环境搭建 一 C编译器 Windows环境下使用MinGW Minimalist GNU for Windows 安装完成后可以在Windows的命令行窗口中进行测试 并编译C语言代码 下载地址 点击下载 解压安装 并记录下安
  • 数码管循环显示数字

    文章目录 一 前言 二 芯片使用 1 74hc245 2 74ls138译码器 三 硬件连接 四 软件代码 五 效果展示 六 代码链接 一 前言 数码管进行显示成功后 可根据自己的想法进行改进 本设计采用八位数码管进行循环显示0 f 其中涉
  • Jenkins配置Git构建SpringBoot项目

    目录 介绍 环境变量配置 配置jdk 配置git 配置maven 下载jenkins brew下载 war包下载 配置jenkins 配置环境 Jenkins从Git拉取代码构建SpringBoot项目 项目配置 General 源码管理
  • 500 Internal Server Error 原因及解决方案

    服务迁移之后接口响应变慢 而且还有报错 500 Internal Server Error 端上请求报错日志 原因初步分析 数据包比较大的时候 比如参数多 大的对象 或者图片base64等格式之间往服务端发送请求时 1 前后端服务连接超时
  • memset和memcpy函数

    memset函数 原型 void memset void s int ch size t n 作用 将s所指向的内存中的前n个字节的内容全部设置为ch指定的ASCII值 这个函数通常为新申请的内存做初始化工作 一般用于结构体和数组的初始化