结构体数组删除和一般数组删除操作类似,把后面的数据往前移就行了,不过不太适用,参考一下就行了
#include <
stdio.h>
#include <
string.h>
void del(void *arr, int n, unsigned int size, int index) {
int i, j = index * size;
for (i = index + 1; i < n; ++i) {
memcpy((void *)((char*)arr + j), (void *)((char*)arr + j + size), size);
j += size;
}
}
typedef struct foo {
int a, b;
}Foo;
int main() {
Foo f[3];
f[0].a = 0;
f[0].b = 0;
f[1].a = 1;
f[1].b = 1;
f[2].a = 2;
f[2].b = 2;
del(f, 3, sizeof(Foo), 1);
return 0;
}