❶ C结构体数组删除操作
结构体数组删除和一般数组删除操作类似,把后面的数据往前移就行了,不过不太适用,参考一下就行了
#include<stdio.h>
#include<string.h>
voiddel(void*arr,intn,unsignedintsize,intindex){
inti,j=index*size;
for(i=index+1;i<n;++i){
memcpy((void*)((char*)arr+j),(void*)((char*)arr+j+size),size);
j+=size;
}
}
typedefstructfoo{
inta,b;
}Foo;
intmain(){
Foof[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);
return0;
}
❷ 怎么把结构体数组的1个数据清空
其实结构体和类有很大的相似性可在结构体内放置一个存储单元(即你现在这个结构体的数组或是vector),然后重载[]运算符,使lala[6]返回的内容是结构体中的结构体,已即你原来设计的那个结构体,然后设计一个成员函数用于,删除结构体数组中指定的元素。
memcpy(&lala[5], &lala[6], sizeof(struct student));
memset(&lala[6], 0, sizeof(struct student));
❸ c语言。怎么删除结构体里的某个成员,就是增删改查里的删我只学到结构体。
例如
struct student s[10];
想要删除s[5],只需将其之后的元素依次往前移将前一个元素覆盖就好了,然后最后一个元素不用就行了!
❹ 在C语言中,怎么删除一个结构体数组中的数据
满意答案null6级2010-12-10你是想单纯的删除
,还是注销这个结构体的这一项啊
追问:
把结构体中存的所有数据删除
回答:
要是是int型的我们一般把它等于0要是是指针型的一般是把他指向空指针NULLstruct
A{int
a;char
*b;}dd;main(){dd.a=0;
dd.b==NULL;}可是这么做好像没事意思,你能告诉我你是想干嘛吗
追问:
学生信息管理系统中有一个结构体数组,存有学生姓名char(20),学号int,等信息,要实现该程序的全部删除功能
回答:
那可以像上面我教的的那样,其实就是用0和NULL把原来的值给覆盖了,原来的数据自然就没有了,也就是实现了你的删除的目的!
❺ c语言中如何删除结构体数组中的一个值
结构体同样可以看做一个基本数据类型。
删除结构体数组中的一个值,就像删除一个普通数组中的值一样的。
普通数组的删除是将后面的数据向前移动,达到覆盖掉的效果
比如:a[4]要删除第二个元素。那么把a[1] = a[2];a[2] = a[3];
最后一个不要动,也最好别去访问它,就相当于把第二个元素删除了。
结构体跟上面类似,但是结构体是你自定义的数据,所以在定义中,你要给它重载赋值符号(也就是=),要不然赋值的过程中会出错
❻ 怎样添加和删除结构体中的成员怎样搜索已经存在的成员
添加和删除只能修改这个
结构体
的定义了。
至于查看已经存在的成员,如果你使用的
编译器
自动提示,比如在本结构体的一个变量后加'.',就能显示已经存在的成员了。要是不行,你只能查看定义了。
❼ 如何删除结构体中的一个元素
结构体数组也是数组,他们在运行时的空间就已经分配好了,从物理地址上删除应该是不可能的。这点和链表不同,我们可以free那个内存就可以了。不过在逻辑上删除这个数值,你可以记录已经存放了内容的结构体数组的下标,如果想删除这个数据就让该下标指向的位置重新存数据就可以了。当然,你也可以用这样的方法对于要删除的内容,你让工程师编号定为负数,不需要内容了,就设为负数。每次存的时候判断一下编号是不是负数就可以了。