码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-07-01 23:26:42      阅读:447      评论:0      收藏:0      [点我收藏+]

标签:运行   开头   rom   input   logs   matrix   user   define   inpu   

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

#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),那么问题就得到解决。

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

标签:运行   开头   rom   input   logs   matrix   user   define   inpu   

原文地址:http://www.cnblogs.com/2Bthebest1/p/7103708.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!