c语言编程问题求大神解答

chrisbarry 2012-12-01 08:58:22
我编了一个程序,在调试运行的时候都正常,可以运行,但是不调试直接运行的时候,就会出错,出错后我点调试,就提示下面的信息:0x76E52D24 (ntdll.dll) (ShortPath.exe 中)处有未经处理的异常: 0xC0000005: 写入位置 0x54415C73 时发生访问冲突。
中断点在free.c这个文件的下列代码处
void __cdecl _free_base (void * pBlock)
{

int retval = 0;


if (pBlock == NULL)
return;

RTCCALLBACK(_RTC_Free_hook, (pBlock, 0));

retval = HeapFree(_crtheap, 0, pBlock);//中断
if (retval == 0)
{
errno = _get_errno_from_oserr(GetLastError());
}
}

我的程序里没有用到free这个函数啊,这是怎么回事呢???
...全文
260 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
chrisbarry 2012-12-01
  • 打赏
  • 举报
回复
引用 1 楼 zmlovelx 的回复:
RTCCALLBACK(_RTC_Free_hook, (pBlock, 0)); //不知道这句作用是什么, 感觉像是free掉pBloclk了, 这样下面这句如果再free的话就会出问题. 个人主观臆想. retval = HeapFree(_crtheap, 0, pBlock);//中断
但是中断的代码不是我写的啊,我也看不懂,那些是什么意思。。
帅得不敢出门 2012-12-01
  • 打赏
  • 举报
回复
 RTCCALLBACK(_RTC_Free_hook, (pBlock, 0)); //不知道这句作用是什么, 感觉像是free掉pBloclk了, 这样下面这句如果再free的话就会出问题. 个人主观臆想.  retval = HeapFree(_crtheap, 0, pBlock);//中断

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧