zoukankan      html  css  js  c++  java
  • C ------ 标准函数介绍

    sprintf()

    函数原型:int sprintf( char *buffer, const char *format [, argument] ... )

    功能介绍:

    1、把一个字符串赋值(拷贝)给另一个字符串,如:

    sprintf(str1, str2);//把字符串str2拷贝给str1

     2、把其他类型的数据按某些要求(比如补零)转化为字符串

    sprintf(str1,"%04X",str.mid(0,4).toInt(&is_ok,10));

    snprintf()

    与sprintf()的区别在于,snprintf()多一个参数,即需要制定要把多少数据存入buffer,一般填sizeof(buffer)

    函数原型:int snprintf(char *str, size_t size, const char *format, ...)

    memset()

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

    功能介绍:

    将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值,memset是以字节为单位,初始化内存块

    1. 当初始化一个字节单位的数组时,可以用memset把每个数组单元初始化成任何你想要的值,比如,

      char data[10];  

      memset(data, 1, sizeof(data));    // right  

      memset(data, 0, sizeof(data));    // right 

    而在初始化其他基础类型时,则需要注意,比如

      int data[10];  

      memset(data, 0, sizeof(data));    // right  

      memset(data, -1, sizeof(data));    // right  

      memset(data, 1, sizeof(data));    // wrong, data[x] would be 0x0101 instead of 1  

    2. 当结构体类型中包含指针时,在使用memset初始化时需要小心。

    比如如下代码中:
      struct Parameters {  
        int x;  
         int* p_x;  
      };  

      Parameters par;  

      par.p_x = new int[10];  

      memset(&par, 0, sizeof(par));  

    当memset初始化时,并不会初始化p_x指向的int数组单元的值,而会把已经分配过内存的p_x指针本身设置为0,造成内存泄漏。同理,对std::vector等数据类型,显而易见也是不应该使用memset来初始化的。
     

     

    memcmp()

    C 库函数 int memcmp(const void *str1, const void *str2, size_t n)) 把存储区 str1 和存储区 str2 的前 n 个字节进行比较

     

    malloc、realloc、calloc 和 free

    malloc、realloc 和 calloc 用于申请内存,free 用于释放内存
     
     
    void* malloc (size_t size);

     malloc:分配一块 size bytes 大小的内存,返回一个指向该内存开始的指针,该内存的值不确定,未被初始化

    void* calloc (size_t num, size_t size);

     calloc:分配一块 num*size bytes 大小的内存,返回一个指向该内存开始的指针,该内存的值被初始化为0

    void* realloc (void* ptr, size_t size);

     realloc:申请一个 size bytes 大小的内存,指针 p 指向该内存,把 ptr 指向的内存前 size 个字节数据拷贝到 p 指向的内存,释放 ptr 指向的内存,返回指针 p

    void free (void* ptr);

    释放内存

     
     
     
  • 相关阅读:
    Kmeans文本聚类系列(已经完成)
    提问的智慧
    公告:关于博客管理
    MSSQL语句备份
    贝叶斯分类专题
    利用Viterbi算法,二元词图分词系列
    从KL相对熵(relative entropy或 KullbackLeibler divergence,KL距离)看文本语义距离系列
    特征词选择算法对文本分类准确率的影响(五)
    新闻类网页正文提取系列
    特征词选择算法对文本分类准确率的影响(四)
  • 原文地址:https://www.cnblogs.com/god-of-death/p/7140782.html
Copyright © 2011-2022 走看看