首页 > 代码库 > 关于User breakpoint called from code at 0x77f9193c的问题
关于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),那么问题就得到解决。
关于User breakpoint called from code at 0x77f9193c的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。