zoukankan      html  css  js  c++  java
  • C语言中memset函数(转)

    memset是linux环境下一个直接操作内存空间C语言函数。

    -------------------------------------一句话:可以全部清空,可以设置值------------------------------------------------------------------------------------------------------

    void *memset(void *s, char ch, unsigned n);

    将s所指向的某一块内存的首 n 个字节的值设为值 c

     1  #include <string.h>
     2   #include <stdio.h>
     3   #include <memory.h>
     4   int main(void)
     5   {
     6   char buffer[] = "Hello world/n";
     7   printf("Buffer before memset: %s/n", buffer);
     8   memset(buffer, '*', strlen(buffer) );
     9   printf("Buffer after memset: %s/n", buffer);
    10   return 0;
    11   }

    输出结果:

      Buffer before memset: Hello world

      Buffer after memset: ***********

    memset() 函数常用于内存空间初始化。

    char str[100];
    memset(str,0,100);
    

      memset()的深刻内涵:用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘memset(a, '/0', sizeof(a));

      memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),会造成b的内存地址溢出。

    memset可以方便的清空一个结构类型的变量或数组。

     1  struct sample_struct
     2   {
     3   char csName[16];
     4   int iSeq;
     5   int iType;
     6   };
     7 
     8     struct sample_strcut stTest;
     9 
    10 
    11  memset(&stTest,0,sizeof(struct sample_struct));  //清零

    如果是数组:

    struct sample_struct TEST[10];

    memset(TEST,0,sizeof(struct sample_struct)*10);

  • 相关阅读:
    学习MyBatis时报的错
    Day01
    PAT乙级01
    基于python-django框架的支付宝支付案例
    单线程与多线程的应用 --Python3
    Python异常 --Python
    有四个数字能组成多少个互不相同的三位数 --Python
    with as用法 --Python
    采用霍夫曼编码(Huffman)画出字符串各字符编码的过程并求出各字符编码 --多媒体技术与应用
    函数和代码复用 --Python
  • 原文地址:https://www.cnblogs.com/coversky/p/7008486.html
Copyright © 2011-2022 走看看