のメンバーからメンバーを削除count
のメンバーをarr
のインデックスidx
から削除するには、この関数を作成しました。char *
void remove_int(int (*arr)[], int idx, int count)
{
int i, j;
for (i = 0; i < count; i++)
for (j = idx; (*arr)[j]; j++)
(*arr)[j] = (*arr)[j+1];
}
私はこのようにそれを呼び出す:
remove_int(&arr, index, cnt);
これはローカル整数のために完璧に動作します。ここに私の問題がある。 array
で
struct {
/* other stuff */
char *array[100];
} global_struct;
メンバーが割り当てられ、満たされている:私はこのようなヘッダファイルを持っています。
誰かが、私はちょうど呼び出し、その後、char *(*arr)[]
にchar
とint (*arr)[]
にint
を切り替えることができ考え出し:
remove_char(&global_struct.array, index, cnt);
が、私はそれを試してみましたが、それは実際にglobal_struct.array
を変更しません。 remove_int
をglobal_struct.array
と連携させるにはどうすればよいですか?
あなたの質問が正しく分かったら、 'int'を' char * 'に変更してください。他に何も変更する必要はありません。 –
さて、 'free'を呼んでください。 – kaylum
'&'を削除し、必要のない間接レベルを使用しないようにします。 –