关于User breakpoint called from code at 0x77f9193c的问题

今日在运行如下程序时出现以上问题:

#include<stdio.h>
#include<stdlib.h>
#define N 3
int main()
{
    int arr[N][N]={NULL};
    int *p=NULL;
    int *ConvertFun(int(*)[N]);
    int i,j;
    printf("please input the orginal matrix:\n");
    for(i=0;i<N;i++)
        for(j=0;j<N;j++)
            scanf("%d",arr[i]+j);
    p=ConvertFun(arr);
    printf("the convert matrix is:\n");
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
            printf("%d ",*p++);
        printf("\n");
    }
    free(p);
    return 0;
}

int *ConvertFun(int(*p)[N])
{
    int* arr=(int*)malloc(N*N*sizeof(int));
    int i,j;
    for(i=0;i<N;i++)
        for(j=0;j<N;j++)
            *(arr+i*N+j)=p[j][i];
    return arr;
}

后来发现堆中的初始地址p由最开始移动到最末尾,free()释放的不再是malloc空间(即存在两个断点,子函数arr的开头及结尾),故需要将*p++改为*(p+i*N+j),那么问题就得到解决。

时间: 2024-11-05 18:44:16

关于User breakpoint called from code at 0x77f9193c的问题的相关文章

对 User breakpoint called from code at XXX 问题分析汇总

分析一,转自独奏的同名Blog 今天调试程序时在Debug版跳出这个错误,我程序根本没设置断点,而其好像说是我的堆有问题,而编译了个Release版本运行正常,后来google下,查到如下解释: 说是调试状态下,操作系统用DebugWin32Heap来替代正常的heap分配内存空间.在这个堆上的任何操作debug的堆管理器会检查堆的数据完整性,如果它发现了一个错误,就会报告一个消息上来.当一个应用程序PageHeap机制被激活时,该应用程序的所有的堆分配被放到内存中,这样堆的边界就与虚拟内存的边

User breakpoint called from code at XXX的解决方式记录

最近在项目上遇到一个问题,纠结了很久终于查清楚原因了. user breakpoint called from code at XXX.场景是这样的: 程序调用了多个dll,在调试exe的时候,调试到dll时直接报该错误.但是将dll及其相应的lib库更换成debug版本,却又不再报错.exe和dll程序变成release版本没有问题. 最终发现在dll里面调用了exe导出函数,然而当初编译dll的时候debug用的是exe的debug,release用的exe的release.但是在exe调试

OCI编程历程

本文转载自:http://www.cnblogs.com/ychellboy/archive/2010/04/16/1713884.html 一.问题 为什么要使用OCI?可以使用ODBC对oracle数据库进行连接啊.当然这在widows系统上一点问题都没有,但如果程序需要跨多个不同的平台使用ODBC就有一定的问题.不是还有unixODBC和iODBC吗?……在unix平台上使用MS推出的东西进行开发还是让我这种转牛角尖的菜鸟程序员难以接受. 实习时所在的部门一直使用OCI来访问oracle数

iOS学习笔记-精华整理

iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始等待用户的操作,自动释放池就会被释放掉(调用dealloc),池中的对象都会收到一个release,有可能会因此被销毁. 2-成员属性:     readonly:不指定readonly,默认合成getter和setter方法.外界毫不关心的成员,则不要设置任何属性,这样封装能增加代码的独立性和安全

HEAP[xxx.exe]:Invalid Address specified to RtlValidateHeap 错误的解决方法总结

一.情况 抽象出问题是这样的: class DLL_API1 A { func() { vector vec; B b; b.func(vec); return TRUE; } } 其中B是另一个导出类,定义如下 class DLL_API2 B { private: vector m_vec; public: func( vector &vec ) { vec = m_vec; } } 运行时发现,每次运行到A的return TRUE释放vector的时候,都会报错:user breakpoi

[转]Debugging the Mac OS X kernel with VMware and GDB

Source:?http://ho.ax/posts/2012/02/debugging-the-mac-os-x-kernel-with-vmware-and-gdb/ Source:?http://ho.ax/posts/2012/02/vmware-hardware-debugging/ Edit 13 July 2013: I've made a couple of updates to this post to clarify a couple of things and resolv

perl代码调试

perl调试教程 一.DESCRIPTIONA (very) lightweight introduction in the use of the perl debugger, and a pointer to existing, deeper sources of information on the subject of debugging perl programs.There's an extraordinary number of people out there who don't

The Breakpoint will not currently be hit. No executable code associated with this line

首先.请确认solutin的属性 C/C++->General-> Debug Information Format 选择Program Database(/Zi) Linking->Debugging->Generate Debug Info -> 选择(Yes /Debug) 假设确认后,请查看下述文章:请点击提示:看看是不是断点位置在类似return这些语句上.假设是就换一个位置.

vs2005_the breakpoint will not currently be hit. The source code is different from the original verison.

公司开发只能用英文版的VS2005 (雅蠛蝶) Tool-->Options-->Debugging->General: 把Require source files to exactly match the orginal version的复选勾去掉就OK了.