calloc
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>int main(void)
{//指针,指向堆区空间,5个int类型//指向首元素,首元素是int, 需要int *int * p;int n = 5;p = (int *)malloc(n * sizeof(int)); //内存的值为随机数//memset(p, 0, sizeof(int)*n);p = (int *)calloc(n, sizeof(int)); //内存的值为0//p = (int *)calloc(sizeof(int), n);int i = 0;for (i = 0; i < n; ++i){printf("%d\n", p[i]);}//一夫一妻free(p); //不是释放p的内存,是释放p所指向的内存printf("\n");system("pause");return 0;
}
realloc
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
    //指针,指向堆区空间,5个int类型, 指向首元素,首元素是int, 需要int *
    int * p;
    int n = 5;
    p = (int *)malloc(n * sizeof(int)); //内存的值为随机数
    int i = 0;
    for (i = 0; i < n; ++i)
    {
        p[i] = i + 1;
    }
    //前面的代码,不能变, 给我增加5个int的空间
    int * tmp = (int *)malloc(10 * sizeof(int)); //10个int的空间
    memcpy(tmp, p, n * sizeof(int));
    free(p);
    p = tmp;
    for (i = 0; i < n; ++i)
    {
        printf("%d\n", p[i]);
    }
    for (i = 5; i < 10; ++i)
    {
        p[i] = i + 1;
        printf("%d\n", p[i]);
    }
    //一夫一妻
    free(p); //不是释放p的内存,是释放p所指向的内存
    printf("\n");
    system("pause");
    return 0;
}
自己实现realloc
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
    //指针,指向堆区空间,5个int类型, 指向首元素,首元素是int, 需要int *
    int * p;
    p = realloc(NULL, 5 * sizeof(int)); //第一个参数为NULL说明为第一次分配内存, 等级于malloc
    int i = 0;
    for (i = 0; i < 5; ++i)
    {
        p[i] = i + 1;
        printf("%d\n", p[i]);
    }
    printf("\n");
    //增加5个内存
    printf("before p = %p\n", p);
    p = realloc(p,  1000 * sizeof(int));
    printf("after p = %p\n", p);
    for (i = 0; i < 5; ++i)
    {
        printf("%d\n", p[i]);
    }
    printf("\n");
    for (i = 5; i < 10; ++i)
    {
        p[i] = i + 1;
        printf("%d\n", p[i]);
    }
    printf("\n");
    free(p);
    printf("\n");
    system("pause");
    return 0;
}

malloc calloc realloc相关推荐

  1. malloc calloc realloc的对比

    函数原型 三个函数的声明分别是: void* realloc(void* ptr, unsigned newsize); void* malloc(unsigned size); void* call ...

  2. 内存分布malloc/calloc/realloc/free/new/delete、内存泄露、String模板、浅拷贝与深拷贝以及模拟string类的实现

    内存分布 一.C语言中的动态内存管理方式:malloc/calloc/realloc和free 1.malloc: 从堆上获得指定字节的内存空间,函数声明:void *malloc (int n); ...

  3. C语言动态申请内存空间之malloc(),calloc(),realloc()函数

    在C语言中用于动态申请内存空间的函数主要为malloc()函数,calloc()函数,以及realloc()函数,以下主要介绍三个函数的用法,区别以及使用时的注意事项. malloc(),calloc ...

  4. c语言malloc,calloc,realloc函数介绍

    malloc,calloc,realloc动态内存管理函数的出现解决了在某些c语言标准中不能使用变长数组的问题 这三个函数的使用需要头文件stdlib.h,这些函数开辟的空间在堆区,系统不会自动释放, ...

  5. malloc/calloc/realloc

    malloc/calloc/realloc和free介绍: malloc函数 malloc函数可以从堆上获得指定字节的内存空间,其函数声明如下: void * malloc(int n); 参数释义: ...

  6. malloc calloc realloc 三兄弟!!!

    学习过C语言的都知道 malloc calloc realloc 这三个函数,这三个函数都是用于动态的分配内存的,最后都要使用 free函数进行释放. 这三个函数的头文件 : stdlib.h 在li ...

  7. c语言释放内存函数,【C语言】内存分配函数malloc/ calloc/ realloc及内存释放free

    前言: 内存区域划分与分配: 1.栈区(stack)--程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等,程序结束时由编译器自动释放. 2.堆区(heap) -- 在内存开辟另一块存储区域 ...

  8. malloc,calloc,realloc,free函数

    在进行C/C++编程的时候,需要程序员对内存的了解比较清楚,经常需要操作的内存可分为下面几个类别: 1.堆栈区(stack):由编译器自动分配与释放,存放函数的参数值,局部变量,临时变量等等,它们获取 ...

  9. 浅谈malloc,calloc,realloc函数之间的区别

    内存区域可以分为栈,堆,静态存储区和常量存储区.局部变量,函数形参,临时变量都是在栈上获得内存的,它们获取的方式都是由编译器自动执行的. C 标准函数库提供了许多函数来实现对堆上内存管理,其中包括:m ...

  10. malloc calloc realloc

    (类型*)malloc(size) (类型*)calloc(n,size) (类型*)realloc(*ptr,size) (1) malloc 分配指定字节数的存储区.此存储区中的初始值不确定 (2 ...

最新文章

  1. 西藏监狱首次奏响《婚礼进行曲》
  2. 2021年春季学期-信号与系统-第二次作业参考答案-第九小题
  3. linux进程--自旋锁和互斥锁的区别(十五)
  4. python 多数据输出到txt_python-BeautifulSoup输出到.txt文件
  5. java教程pdf下载百度云,面试题+笔记+项目实战
  6. 一步步编写操作系统 23 重写主引导记录mbr
  7. JimuReport积木报表 — API数据源报表制作
  8. poj 1456 Supermarket 贪心+并查集(个人感觉有点难判断出来
  9. 笔记本电脑磁盘加密技术
  10. 简单实现根据excel表生成sql 建表语句
  11. 一个粗糙的js分页判断
  12. 学习笔记:修改网吧计费系统
  13. [历朝通俗演义-蔡东藩-前汉]第007回 寻生路徐市垦荒 从逆谋李斯矫诏
  14. as3读写本地xml/txt
  15. 解决mac登录APPLE ID无限重复弹窗提示登录
  16. 梦幻风图片?我用Python分分钟做出来!!
  17. 【程序员面试】校招和社招的区别
  18. 液晶显示器偏光膜的基本原理
  19. mybatis中resultMap和resultType区别,三分钟读懂
  20. 航拍茅山宝盛园透明屋“镶嵌”茶园犹如外星基地

热门文章

  1. 树状数组相关应用之平面范围求和问题
  2. TensorFlow2.0:张量排序
  3. Java虚拟机(JVM)-1-内存区域
  4. [转] 先验概率与后验概率贝叶斯与似然函数
  5. 找不到java虚拟机_javabridge.jutil.JVMNotFoundError:找不到Java虚拟机
  6. 服务器系统2022安装wsl2,手把手教你踩坑:老白的Docker for Windows安装初探WSL 2 backend...
  7. wps 选择 高亮_简单实用:一组WPS表格技巧
  8. python的作用域 gbel_[ python ] 全局和局部作用域变量的引用
  9. android 火箭动画,利用动画模拟火箭发射场景
  10. java解三角函数方程_Java 中的三角函数