【发布时间】:2022-01-26 01:42:38
【问题描述】:
请帮助我。我有一个功能。它应该删除索引号下的行。我正在创建一个新的二维数组。我为它分配内存。我从源数组中清除内存并再次为其分配。
int **matrix;
这是我的矩阵
int** delete_with_index(int n,int m, int **arr, int index){
int i, g;
int **new_arr;
new_arr= malloc(n*sizeof(int *));
for (i=0;i<n;i++){
new_arr[i]=malloc(m*sizeof(int));
}
for (i=0;i<n;i++){
for (g=0;g<m;g++){
new_arr[i][g]=arr[i][g];
}
free(arr[i]);
}
free(arr);
arr= malloc((n-1)*sizeof(int *));
for (i=0;i<(n-1);i++){
arr[i]=malloc(m*sizeof(int));
}
for (i=0;i<index;i++){
for (g=0;g<m;g++){
arr[i][g]=new_arr[i][g];
}
free(new_arr[i]);
}
for (i=index+1;i<n;i++){
for (g=0;g<m;g++){
arr[i][g]=new_arr[i-1][g];
}
free(new_arr[i-1]);
}
free(new_arr);
return arr;
}
这是我的功能
res_m = delete_with_index(n1, m1, res_m, index);
我是这样称呼它的
【问题讨论】:
-
欢迎来到 Stack Overflow。您没有提出问题,也没有描述具体的错误/问题。请提供完整的minimal reproducible example 以及准确的输入、预期结果和实际结果。请收下tour 并阅读How to Ask。
-
当我调用它时,我的程序迷恋进程已完成,退出代码为 -1073741510(0xC000013A:被 Ctrl+C 中断)
-
Edit 用所有请求的信息更新它的问题。不在 cmets 中。
-
我正在创建与原始矩阵完全相同的矩阵。然后我清理了原来的那个。我给它分配了这么一个数量,使它变成不是nm,而是(n-1)m,因为我需要删除一行
-
再次,请提供完整的minimal reproducible example。我们需要能够重现问题的准确代码。