一.动态内存分配
1.malloc
  原型:extern void *malloc(unsigned int num_bytes);
  用法:#include <alloc.h>
  功能:分配长度为num_bytes字节的内存块
  说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
        当内存不再使用时,应使用free()函数将内存块释放。
  举例:
      // malloc.c
      #include <syslib.h>
      #include <alloc.h>

main()
      {
        char *p;
        
        clrscr();        // clear screen

p=(char *)malloc(100);
        if(p)
          printf("Memory Allocated at: %x",p);
        else
          printf("Not Enough Memory!\n");

free(p);
        
        getchar();
        return 0;
      }

2.calloc
  原型:extern void *calloc(int num_elems, int elem_size);
  用法:#include <alloc.h>
  功能:为具有num_elems个长度为elem_size元素的数组分配内存
  说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
        当内存不再使用时,应使用free()函数将内存块释放。
  举例:
      // calloc.c
      #include <syslib.h>
      #include <alloc.h>

main()
      {
        char *p;
        
        clrscr();        // clear screen

p=(char *)calloc(100,sizeof(char));
        if(p)
          printf("Memory Allocated at: %x",p);
        else
          printf("Not Enough Memory!\n");
          
        free(p);

getchar();
        return 0;
      }

3.realloc
  原型:extern void *realloc(void *mem_address, unsigned int newsize);
  用法:#include <alloc.h>
  功能:改变mem_address所指内存区域的大小为newsize长度。
  说明:如果重新分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
        当内存不再使用时,应使用free()函数将内存块释放。
  举例:
      // realloc.c
      #include <syslib.h>
      #include <alloc.h>

main()
      {
        char *p;
        
        clrscr();        // clear screen

p=(char *)malloc(100);
        if(p)
          printf("Memory Allocated at: %x",p);
        else
          printf("Not Enough Memory!\n");
          
        getchar();

p=(char *)realloc(p,256);
        if(p)
          printf("Memory Reallocated at: %x",p);
        else
          printf("Not Enough Memory!\n");

free(p);
        
        getchar();
        return 0;
      }

4.free
  原型:extern void free(void *p);
  用法:#include <alloc.h>
  功能:释放指针p所指向的的内存空间。
  说明:p所指向的内存空间必须是用calloc,malloc,realloc所分配的内存。
        如果p为NULL或指向不存在的内存块则不做任何操作。
  举例:
      // free.c
      #include <syslib.h>
      #include <alloc.h>

main()
      {
        char *p;
        
        clrscr();        // clear screen
        textmode(0x00);

p=(char *)malloc(100);
        if(p)
          printf("Memory Allocated at: %x",p);
        else
          printf("Not Enough Memory!\n");
          
        getchar();
        free(p);         // release memory to reuse it

p=(char *)calloc(100,1);
        if(p)
          printf("Memory Reallocated at: %x",p);
        else
          printf("Not Enough Memory!\n");

free(p);         // release memory at program end
        
        getchar();
        return 0;
      }

二.字符串函数
1.memccpy
  原型:extern void *memccpy(void *dest, void *src, unsigned char ch, unsigned int count);
  用法:#include <string.h>
  功能:由src所指内存区域复制不多于count个字节到dest所指内存区域,如果遇到字符ch则停止复制。
  说明:返回指向字符ch后的第一个字符的指针,如果src前n个字节中不存在ch则返回NULL。ch被复制。
  举例:
      // memccpy.c
      #include <syslib.h>
      #include <string.h>

main()
      {
        char *s="Golden Global View";
        char d[20],*p;
        
        clrscr();
        
        p=memccpy(d,s,'x',strlen(s));
        if(p)
        {
          *p='\0';      // MUST Do This
          printf("Char found: %s.\n",d);
        }
        else
          printf("Char not found.\n");

getchar();
        return 0;
      }

2.memchr
  原型:extern void *memchr(void *buf, char ch, unsigned count);
  用法:#include <string.h>
  功能:从buf所指内存区域的前count个字节查找字符ch。
  说明:当第一次遇到字符ch时停止查找。如果成功,返回指向字符ch的指针;否则返回NULL。
  举例:
      // memchr.c
      #include <syslib.h>
      #include <string.h>

main()
      {
        char *s="Hello, Programmers!";
        char *p;
        
        clrscr();
        
        p=memchr(s,'P',strlen(s));
        if(p)
          printf("%s",p);
        else
          printf("Not Found!");

getchar();
        return 0;
      }

3.memcmp
  原型:extern int memcmp(void *buf1, void *buf2, unsigned int count);  
  用法:#include <string.h>
  功能:比较内存区域buf1和buf2的前count个字节。
  说明:
        当buf1<buf2时,返回值<0
        当buf1=buf2时,返回值=0
        当buf1>buf2时,返回值>0
  举例:
      // memcmp.c
      #include <syslib.h>
      #include <string.h>

main()
      {
        char *s1="Hello, Programmers!";
        char *s2="Hello, programmers!";
        int r;
        
        clrscr();
        
        r=memcmp(s1,s2,strlen(s1));
        if(!r)
          printf("s1 and s2 are identical");
        else
        if(r<0)
          printf("s1 less than s2");
        else
          printf("s1 greater than s2");

getchar();
        return 0;
      }

4.memcpy
  原型:extern void *memcpy(void *dest, void *src, unsigned int count);
  用法:#include <string.h>
  功能:由src所指内存区域复制count个字节到dest所指内存区域。
  说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。
  举例:
      // memcpy.c
      #include <syslib.h>
      #include <string.h>

main()
      {
        char *s="Golden Global View";
        char d[20];
        
        clrscr();
        
        memcpy(d,s,strlen(s));
        d[strlen(s)]=0;
        printf("%s",d);

getchar();
        return 0;
      }

5.memicmp
  原型:extern int memicmp(void *buf1, void *buf2, unsigned int count);
  用法:#include <string.h>
  功能:比较内存区域buf1和buf2的前count个字节但不区分字母的大小写。
  说明:memicmp同memcmp的唯一区别是memicmp不区分大小写字母。
        当buf1<buf2时,返回值<0
        当buf1=buf2时,返回值=0
        当buf1>buf2时,返回值>0
  举例:
      // memicmp.c
      #include <syslib.h>
      #include <string.h>

main()
      {
        char *s1="Hello, Programmers!";
        char *s2="Hello, programmers!";
        int r;
        
        clrscr();
        
        r=memicmp(s1,s2,strlen(s1));
        if(!r)
          printf("s1 and s2 are identical");
        else
        if(r<0)
          printf("s1 less than s2");
        else
          printf("s1 greater than s2");

getchar();
        return 0;
      }

C语言标准库函数总结的更多相关文章

  1. C语言标准库函数(网络上copy的)

    C语言标准库函数 标准io函数Standard C I/Oclearerr() clears errorsfclose() close a filefeof() true if at the end- ...

  2. C语言标准库函数strcpy与strcmp的简单实现

    //C语言标准库函数strcpy的一种简单实现. //返回值:目标串的地址. //对于出现异常的情况ANSI-C99标准并未定义,故由实现者决定返回值,通常为NULL. //参数:des为目标字符串, ...

  3. C语言标准库函数memcpy和memmove的区别以及内存重叠问题处理

    ①memcpy()和memmove()都是C语言中的标准库函数,定义在头文件string.h中,作用是拷贝一定长度的内存的内容,原型分别如下: void *memcpy(void *dst, cons ...

  4. C语言标准库函数qsort具体解释

    1 函数简单介绍 功 能: 使用高速排序例程进行排序 头文件:stdlib.h 用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(c ...

  5. 文件I/O之C标准库函数和系统库函数差别

    1.首先C标准库函数是工作在系统库函数之上的.C标准库函数在读写文件时候都有一个文件流指针.FILE*fp=NULL;// fp=fopen(F_PATH,"r"); fp文件流指 ...

  6. strcpy c标准库函数

    C语言标准库函数strcpy,把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间. 已知strcpy函数的原型是: char *strcpy(char *dst, const ...

  7. C语言库函数,头文件

    参看:https://zhidao.baidu.com/question/328173842.html 该文件包含了的C语言标准库函数的定义 stdlib.h里面定义了五种类型.一些宏和通用工具函数. ...

  8. C++ 中库函数bsearch的简单研究(含示例)

    /**//*bsearch函数声明如下: void *bsearch(const void *key, const void *base, size_t *nelem,                 ...

  9. 关于fefo函数

    feof是C语言标准库函数函数,其原型在stdio.h中,其功能是检测流上的文件结束符. 函数原型: int feof(FILE *stream); 返回值:如果文件结束,则返回非0值,否则返回0 在 ...

随机推荐

  1. Luogu P1186 玛丽卡 【最短路】By cellur925

    题目描述 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们知道从一个城市到另一个城 ...

  2. CMake学习笔记一:初识cmake

    1 cmake简介 1.1 背景知识 cmake 是 kitware 公司以及一些开源开发者在开发几个工具套件(VTK)的过程中衍生品,最终形成体系,成为一个独立的开放源代码项目.项目的诞生时间是 2 ...

  3. bitset优化背包问题

    https://blog.csdn.net/HowardEmily/article/details/77340566 留坑待填

  4. New Year Tree CodeForces -620E

    这个题有一个技巧:把颜色压到一个long long 上. #include<cstdio> #include<algorithm> #include<cstring> ...

  5. jmeter(一)工具介绍(二)

    1.Jmeter 概要描叙 jmeter 是一款专门用于功能测试和压力测试的轻量级测试开发平台.多数情况下是用作压力测试,该测试工具在阿里巴巴有着广泛的使用,估计是不要钱吧,哈哈,功能上来说,整个平台 ...

  6. AngularJS开发最常犯的10个错误

    简介 AngularJS是目前最为活跃的Javascript框架之一,AngularJS的目标之一是简化开发过程,这使得AngularJS非常善于构建小型app原型,但AngularJS对于全功能的客 ...

  7. Windows API函数大全一

    1. API之网络函数             WNetAddConnection 创建同一个网络资源的永久性连接             WNetAddConnection2 创建同一个网络资源的连 ...

  8. jstat命令-帮助优化java性能

    jstat命令使用 jstat命令可以查看堆内存各部分的使用量,以及加载类的数量.命令的格式如下: jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]

  9. 支付宝SDK

    由于支付宝SDK对于整个支付流程已经介绍的十分详细了,在这里我就简单说一些注意点. 由于存在支付宝可能没有安装的情况,所以我们在调用支付宝支付时,需要对其进行判断,做出不同的处理方式,即是使用客户端支 ...

  10. Android开发使用的常见第三方框架汇总

    本文转载:http://blog.csdn.net/liuhaomatou/article/details/44857005 1.volley 项目地址 https://github.com/sman ...