我正在编写一个 C 程序,其中有两个二维数组,分别是 arr1 和 arr2。我必须从 arr1 中删除特定行并将其添加到 arr2。所以我使用 realloc 将 arr2 的大小动态增加 1,并将 arr1 的那一行的内容复制到这个新创建的 arr2 行。
但我的问题是我无法缩小 arr1 的大小并使用realloc
. 任何人都可以用 C 代码帮助我,该代码可用于动态缩小 2d 数组的大小(使用realloc
或其他)并从中删除特定行(通过使用该行的索引)?
起初我像这样创建了两个矩阵
a_seq=(float **)malloc(count1*sizeof(float*));
for(i=0;i<count1;i++)
a_seq[i]=(float *)malloc(n*sizeof(float));
然后我realloc
在将第二个矩阵的大小增加 1 后对第二个矩阵执行了
a_full=(float **)realloc(a_full,count2*sizeof(float *));
a_full[count2-1]=(float *)malloc(n*sizeof(float));
for(s=0;s<n;s++)
a_full[count2-1][s]=a_seq[p][s];
p 是要从 a_seq 中删除的行的索引。我的问题是我可以应用相同的概念realloc
来缩小 a_seq 矩阵的大小并删除指定的行吗?