结构体变量数组,怎么样删除其中一个元素?
想了半天,还是不大懂 问题点数:20、回复次数:10Top
1 楼syuui(syuui)回复于 2003-09-01 13:05:48 得分 0
老兄说详细些可否?Top
2 楼meimeiyi(八百里)回复于 2003-09-01 13:07:47 得分 0
比如说,我有一个结构体数组struct student lala[6],现在我要删除lala[5]的内容,怎么做?Top
3 楼Peterwby(wuhen)回复于 2003-09-01 13:22:28 得分 0
如果用new或malloc分配的空间倒是可以用delete或free来删除空间Top
4 楼jiangpeng(Mr. J)回复于 2003-09-01 13:22:52 得分 0
直接覆盖掉不就够了,又不是在堆上分配的干吗要手动删除?Top
5 楼Tinybaby(喝蚊子的牛奶)回复于 2003-09-01 13:24:15 得分 5
其实结构体和类有很大的相似性
可在结构体内放置一个存储单元(即你现在这个结构体的数组或是vector),然后重载[]运算符,使lala[6]返回的内容是结构体中的结构体,已即你原来设计的那个结构体,然后设计一个成员函数用于,删除结构体数组中指定的元素
Top
6 楼Bandry(菜鸟-舍我其谁)回复于 2003-09-01 13:25:41 得分 5
memcpy(&lala[5], &lala[6], sizeof(struct student));
memset(&lala[6], 0, sizeof(struct student));
不知道可不可以;
建议你不要使用数组形式,用单链表啊Top
7 楼meimeiyi(八百里)回复于 2003-09-01 13:27:26 得分 0
楼上的各位:首先,我现在在做的是c的作业,你们说的我很多都不懂。第二,这个确实是一个非常容易的东西。我就是想通过修改指针删除,直接覆盖太……了。不过还是非常谢谢大家。有没有通过修改指针的方法?Top
8 楼xiyi168(风云)回复于 2003-09-01 13:42:25 得分 5
你用的是数组,不是链表不存在存放下一个元数的指针Top
9 楼meimeiyi(八百里)回复于 2003-09-01 13:43:27 得分 0
也就是说只能直接覆盖了?Top
10 楼blh(当你不割肉时,你的损失只是个数字,当你割肉时,你的损失就是你的肉)回复于 2003-09-01 14:55:01 得分 5
1。不用它
2。对该结构实体进行析构/复位清除操作
3。至于你想释放内存空间嘛,既然你一起申请,那么必须以其释放Top




