c/c++语言开发共享缩小2Darrays的大小并从中删除特定行

我正在写一个C程序,我有两个2d数组说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)); 

然后我将第二个矩阵的大小增加了1,然后在第二个矩阵上执行了realloc

 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矩阵的大小并删除指定的行吗?

    我假设你将以下面的forms为你的2d数组分配内存:

     int * arr = malloc(sizeof(int)*r*c); 

    相反,如果您逐行分配内存,则删除行的问题会简化。

     int * arr[r]; /*Declaring an array of pointers*/ /*Allocating memory row by row*/ for(i=0; i 

    这样,您只能从指针数组分配中留下额外的指针。 您要删除的行将被成功删除。

      以上就是c/c++开发分享缩小2Darrays的大小并从中删除特定行相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注(计算机技术网)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

      如若转载,请注明出处:https://www.ctvol.com/c-cdevelopment/522235.html

      (0)
      上一篇 2020年12月9日
      下一篇 2020年12月9日

      精彩推荐