求问一个VC6.0环境下释放内存问题

lei001 lei001 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区


VC6.0环境下,编写一段代码如下

#include "stdio.h"

void *input_data(int *num)
{
int n,i,j,tmp;
int *p;

scanf("%d",&n);

p = malloc(n*n);

for(i=0; i<n;i++)
{
for(j= 0; j<n; j++)
{
scanf("%d",&tmp);
*(p+i*n+j) = tmp;
}
}

*num = n;
return p;
}

void print_data(int num, int *p)
{
int i,j;

for(i= 0; i<num;i++)
{
for(j=0;j<num;j++)
{
printf("%d ",*(p+i*num+j));
}
printf("\n");
}
}

void main()
{
int *p =NULL,*q = NULL;
int num = 0;
int i,j;

p = input_data(&num);

if(p!=NULL)
print_data(num, p);

if(p!=NULL)
free(p); //这一步释放内存有问题
}

free(p); 释放内存时,提示
“debug error!
Program:D:\debug\s.exe
DAMAGE:after Normal block(#43) at 0x003707B8
”
不知怎么回事?
...全文

相关推荐

解决win7 64位 vc6.0中文显示乱码问题

解决win7 64位 vc6.0中文显示乱码问题

xiejl8727

在VC6.0环境下成功使用Boost库

本文还有配套的精品资源,点击获取 简介:讨论Boost库如何与Microsoft Visual C++ 6.0(VC6.0)编译器兼容,并提供使用指南。Boost是一个包含多种实用工具和库的开源C++库集合,旨在增强C++标准库功能。尽管VC6.0已老旧,通过适当配置仍可利用Boost的强大功能。本文介绍了安装和配置Boost库、禁用某些调试特性、手动编译Boost库为静态...

君子心理

操作系统内存管理实验:深入VC6.0内存机制

本文还有配套的精品资源,点击获取 简介:操作系统作为计算机的核心,其内存管理功能确保了多任务执行的效率和稳定性。本实验通过VC6.0开发环境,深入探讨内存分配、释放、对齐、虚拟内存、保护、碎片以及堆栈管理等关键内存管理知识点。学生将通过编码实践,如实现内存分配器和设计虚拟内存系统,以提升对操作系统内存管理理论和实际操作的理解。 1. 操作系统内存管理概述 1...

泠川

VC6.0环境下OpenGL开发环境搭建指南

OpenGL,全称Open Graphics Library,是一个跨语言、跨平台的编程接口,主要用于渲染2D和3D矢量图形。自1992年发布以来,它已成为业界领先的开源图形API,被广泛应用于游戏、虚拟现实、仿真、CAD/CAM、视觉化等领域。OpenGL的核心是它的渲染管线,负责处理图形数据并将其转化为屏幕上可见的像素。通过一系列的流程处理,如顶点处理、光照、纹理映射等,OpenGL能够创建复杂的视觉效果。

君子心理

内存泄露检测工具(只能用于VC6.0)

BoundsChecker 是一个Run-Time错误检测工具,它主要定位程序在运行时期发生的各种错误。里面附带使用说明

zpp100
评论 8
收藏 已收藏
分享
返回顶部
lei001
C语言 70,039 成员 243,237 内容