zoukankan      html  css  js  c++  java
  • mem系函数总结

    memset();

    原型: void *memset(void *s, int ch, size_t n);

    含义:   将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作;

               其返回值为指向S的指针。

    注意:   其是按照字节顺序(大小为n字节)进行赋值的,跟具体类型无关;

    int num[8];

    我们用memset给num初始化为{1,1,1,1,1,1,1,1},memset(num,1,8);//这样是不对的

    错误点1:一个int是4个字节的,8个int是32个字节,所以首先要赋值的长度就不应该为8而是32。

    错误点2:因为memset是 逐字节 拷贝,以num为首地址的8字节空间都被赋值为1,即一个int变为0X00000001 00000001 00000001 00000001,显然,把这个数化为十进制不会等于1的。

    所以,在memset使用时要千万小心,在给char以外的数组赋值时,最好只用来初始化为0(0x00)。

    memcpy();

    原型:   void *memcpy( void *dest, const void *src, size_t n );

    含义:   从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中

    1.source和destin所指内存区域不能重叠,函数返回指向destin的指针。

  • 相关阅读:
    DRF 配置
    RESTful 设计方法(学习总结用)
    Chrome 开发者工具
    html中注释的php代码被解析
    正则
    局域网域名访问php项目
    jQuery 操作from表单数据序列化
    jQuery操作Table tr td方法
    鼠标焦点在input的某个位置上,点击一个button 在input光标处的增加文字
    858. Mirror Reflection
  • 原文地址:https://www.cnblogs.com/OSLover/p/3604998.html
Copyright © 2011-2022 走看看