私は、arr1とarr2という2つの2次元配列を持つCプログラムを書いています。arr1から特定の行を削除し、それをarr2に追加する必要があります。そこで、reallocを使用してarr2のサイズを動的に1増やし、そのarr1の行の内容をこの新しく作成されたarr2の行にコピーしました。
しかし、私の問題は、arr1のサイズを縮小して、を使用してその特定の行を削除できないことですrealloc
。realloc
2D配列のサイズを動的に(または他の何かを使用して)縮小し、特定の行を(その行のインデックスを使用して)削除するために使用できるCコードを誰かが手伝ってくれますか?
最初はこのような2つの行列を作成しました
a_seq=(float **)malloc(count1*sizeof(float*));
for(i=0;i<count1;i++)
a_seq[i]=(float *)malloc(n*sizeof(float));
次にrealloc
、サイズを1増やした後、2番目のマトリックスでを実行しました。
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行列のサイズを縮小し、指定した行を削除できるかどうかです。