❶ 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那個內存就可以了。不過在邏輯上刪除這個數值,你可以記錄已經存放了內容的結構體數組的下標,如果想刪除這個數據就讓該下標指向的位置重新存數據就可以了。當然,你也可以用這樣的方法對於要刪除的內容,你讓工程師編號定為負數,不需要內容了,就設為負數。每次存的時候判斷一下編號是不是負數就可以了。