求问一个VC6.0环境下释放内存问题
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中文显示乱码问题
在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错误检测工具,它主要定位程序在运行时期发生的各种错误。里面附带使用说明


