これは、2 つの整数ポインター aV と aT を持つ私の構造体です。
struct ADJP
{
int *aV;
int eV;
int nV;
int *aT;
int nT;
};
ADJP *Umb = NULL;
aV と aT の割り当てプロセスは次のようになります。
for(int i=0; i<nb; i++)
{
Umb[i].aV = new int[N];
for(int j=0; j<n; j++)
Umb[i].aV[j] = pIn[i].aV[j];
}
Umb 配列から特定の要素を 1 つ削除したい。たとえば、Umb[5] を削除したいのですが、どうすれば削除できますか。さまざまな計算法を試しましたが、割り当てられたポインターが原因でエラーが発生したと思います。follow メソッドを試してみましたが、この種の構造体配列では機能しません。ポインタを持たない構造体配列で動作しています。
int DeleteStructElement(int Index, ADJP *b, int N, int at)
{
for(int i=Index; i<N-1; i++)
memmove(&b[i], &b[i+1], (N-at-1)*sizeof*b); // moving the terms of array
N--; // updating new size
return N;
}
構造体配列から要素を削除する方法はありますか?