鱼C论坛

 找回密码
 立即注册
查看: 2994|回复: 8

[技术交流] C语言堆内存块的重分配演示 malloc, realloc

[复制链接]
发表于 2022-10-5 14:28:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
/*#include<malloc.h>*/
#include<stdlib.h>

int main()
{  
        int i ,* temp;
        const int size = 20;

        int *p = (int *)malloc(5 * sizeof(int));
        temp=p;
        printf("malloc后指向地址%x\n", temp);
        for (i=0;i<5;temp++,i++)
        {
                *temp=0xaabbccdd;
        }
        temp=p;
        i=0;
        printf("p[5]内容%x ", *temp);
        temp++;
        for (i=1;i<5;temp++,i++)
        {
                printf("%x ", *temp);
        }
        temp=p;
        int *p1 = (int *)realloc(p, size*sizeof(int));
          printf("\nrealloc后p指向地址%x\n", p);

        i=0;
        printf("p[5]内容%x ", *temp);
        temp++;
        for (i=1;i<5;temp++,i++)
        {
                printf("%x ", *temp);
        }
    temp=p1;
        printf("\nrealloc后p1指向地址%x\n", p1);
        i=0;
        printf("p1[10]内容%x ", *temp);
        temp++;
        for (i=1;i<10;temp++,i++)
        {
                printf("%x ", *temp);
        }
    // free(p); 在 int *p1 = (int *)realloc(p, size*sizeof(int)); 如果执行该语句会编译出错,由于地址已经改变,原来的p指向空间再执行realloc时已经回收
    free(p1);
        system("pause");
        return 0;
}

运行调试截图

运行调试截图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-5 14:35:45 | 显示全部楼层
这个太好了,正是需要的.
只是好奇你如何得知此地址是空的,怎么可以直接使用,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-5 14:39:34 | 显示全部楼层
howzyao 发表于 2022-10-5 14:35
这个太好了,正是需要的.
只是好奇你如何得知此地址是空的,怎么可以直接使用,

用vC6.0调试可以看到,你要了解堆的分配块,看一看我的贴 https://fishc.com.cn/thread-212610-1-3.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-5 14:41:12 | 显示全部楼层
howzyao 发表于 2022-10-5 14:35
这个太好了,正是需要的.
只是好奇你如何得知此地址是空的,怎么可以直接使用,

当时发的那个关于堆的贴,出60鱼币都几乎没人看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-5 14:47:15 | 显示全部楼层
howzyao 发表于 2022-10-5 14:35
这个太好了,正是需要的.
只是好奇你如何得知此地址是空的,怎么可以直接使用,

如果用VC6.0调试函数的调用的过程,对学习C语言更有好处
VC6.0及插件下载:https://fishc.com.cn/thread-201726-1-1.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-14 22:14:00 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-19 23:51:44 From FishC Mobile | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-29 17:59:28 | 显示全部楼层

这写内容对初学者有点难
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-29 18:43:47 | 显示全部楼层
这可是好东西哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 20:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表