zoukankan      html  css  js  c++  java
  • C语言常用库函数:内存申请、设置与复制


    库函数:stdlib.h

    一、内存申请

    // 函数原型:void *malloc(size_t size);
    // size – 内存块的大小,以字节为单位, 返回一个指针,需要手动初始化内存
    // 函数原型:void *calloc(size_t num, size_t size);
    // num-- 要被分配的元素个数; size – 元素的大小;分配成功会返回一个指针,并且会设置分配的内存为零
    
    char *temp = (char *)malloc(MEM_SIZE * sizeof(char));
    char *tempc = (char *)calloc(MEM_SIZE, sizeof(char));
    

    二、内存设置

    // errno_t memset_s(void* dest, size_t destMax, int c, size_t count)
    //  c-要设置目的缓冲的字符, count-要设置目的缓冲的字符个数
    errno_t ret = EOK;
    ret = memset_s(temp, MEM_SIZE, 0, MEM_SIZE);      // 初始化为0
    printf("ret=%d
    ", ret);
    
    ret = memset_s(temp, MEM_SIZE, 'a', 10);
    printf("ret=%d, temp=%s
    ", ret, temp);
    

    三、内存复制

    // errno memcpy_s(void *dst, size_t destMax, const void *src, size_t count);
    // errno memcpy_s(void *dst, size_t destMax, const void *src, size_t count);
    // 当内存发生局部重叠的时候,memmove保证拷贝的结果是正确的,memcpy不保证拷贝的结果的正确
    // count:数组复制时候,第三个参数为字节数,而不是数组大小
    // 该函数返回一个指向目标存储区destin的指针
    memcpy_s(temp, MEM_SIZE, "abcdefghij", 10);
    printf("ret=%d, temp=%s
    ", ret, temp);
    
    memmove_s(tempc, MEM_SIZE, temp, 10);
    printf("ret=%d, tempc=%s
    ", ret, tempc);
    
    
  • 相关阅读:
    Eclipse修改背景颜色(豆沙绿)
    项目导入时报错:The import javax.servlet.http.HttpServletRequest cannot be resolved
    jdk1.7 环境变量配置
    Maven的安装、配置及使用入门
    tomcat端口作用
    《Maven实战》
    Maven 详解
    遍历Map的四种方法
    遍历properties文件
    题库终结
  • 原文地址:https://www.cnblogs.com/HZL2017/p/15113796.html
Copyright © 2011-2022 走看看