當前位置:首頁 » 編程語言 » c語言刪除結構體

c語言刪除結構體

發布時間: 2022-03-30 08:23:37

c語言程序,怎麼在結構體鏈表中插入或者刪除某個結構體

沒學過數據結構?那你們老師在幹嘛?數據結構不應該是和語言同步進行的嗎?
struct A //這就是個結構體,包含數據域和指針域
{
int a;//數據域,可以是任何類百型的。
char b;//數據域
A *p;//指針域,就是struct A類型。
};鏈表,一般是動態的。你要靜態的就不用malloc分配就行了。定義N個struct
A就行了。
struct A a1;
struct A a2;
struct A a3;
struct A a4;
//a1作為第一個節點
a1->next = a2;
a2->next = a3;
a3->next = a4;
a4->next = NULL;
//插入,在a2後面插入a5
struct A a5;
a5->next = a2->next;
a2->next = a5;//注意指針的賦值順序。雖然全部是度靜態的問題不大。動態分配的時候不仔細會造成斷鏈,內存溢出。
//刪除a5
a2->next = a5->next;//靜態不存在釋放的問題,動態申請的請釋放a5;

㈡ 在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語言中如何銷毀結構體變數

C語言沒有銷毀變數的舉措,所以不能由程序員用什麼語句來銷毀結構體變數。和其他基本變數一樣,全局結構體變數、static修飾的結構體變數的壽命都與程序的壽命一樣長,無法改變;而聲明在函數中的自動(auto)結構體變數,在函數被調用時創建,函數退出時自動銷毀!

㈣ c語言刪除結構體中的某一元素

額。。。我看看。。。

//pil[n] 首先這個數組沒有定義。。。。你先看看,是用它來記錄文件信息的。。。你定義的應該是個全局變數吧??

void dele_name()
{ FILE *fp;
int i,j,n;
char name[10];
if((fp=fopen("pil","rb"))==NULL){printf("不能打開pil文件\n"); exit(1);}
printf("刪除前\n");
printf("記錄號: 入住時間 房間號 姓名 性別 床位數 費用 身份證號<Enter>\n");

//將所有的信息「 都 「寫入了pil[n] 數組;都寫入了你看到沒??

for(n=0;fread(&pil[n],sizeof(struct pilot),1,fp);n++)
printf("%6d%10s%7s%7s%7s%7d%9d%20s\n",n+1,pil[n].time,pil[n].no,pil[n].name,
pil[n].sex,pil[n].shu,pil[n].money,pil[n].id);
printf("要刪除的旅客姓名:");scanf("%s",name);
//額。。。。這個for的空循環,通過strcmp(pil[i].name,name來尋找
//要刪除的人的信息;如果找到了,就退出,但是此時記錄了該項在pil[n]的下標值,即就是該元組是文件里的第 i 項;是個關鍵;
for(i=0;(strcmp(pil[i].name,name)!=0&&i<n);i++)

fclose(fp);
//這里思想很簡單,就是把 前 0 ~ (i-1)項 和 (i +1)~最後一項 重新寫入文件。。。相當於刪除了第 i 項。。。
fp=fopen("pil","w+"); //以 「W+"方式打開,你看看規則,
//好像是清除了文件里的信息了吧。。這個不是很清除,不過就邏輯來看,應該就是這樣的了。。。
for(j=0;j<i;j++)
fwrite(&pil[j],sizeof(struct pilot),1,fp);
for(j=i+1;j<n;j++)
fwrite(&pil[j],sizeof(struct pilot),1,fp);
fseek(fp,0,SEEK_SET);
if(i<n)
printf("刪除成功!");
else

//額。。。這里說一下,你這個 判斷應該放在上邊我覺得。。。因為如果沒找到這個人,那麼你應該直接退出,而不是將文件重新寫一遍。。浪費時間了。。。
printf("沒有此人!");
fclose(fp);
}

㈤ C語言結構體函數 實現 添加 刪除 修改

網上搜一下,建立鏈表,添加,刪除,修改的相關操作

㈥ c語言中如何刪除結構體數組中的一個值

結構體同樣可以看做一個基本數據類型。
刪除結構體數組中的一個值,就像刪除一個普通數組中的值一樣的。
普通數組的刪除是將後面的數據向前移動,達到覆蓋掉的效果
比如:a[4]要刪除第二個元素。那麼把a[1] = a[2];a[2] = a[3];
最後一個不要動,也最好別去訪問它,就相當於把第二個元素刪除了。

結構體跟上面類似,但是結構體是你自定義的數據,所以在定義中,你要給它重載賦值符號(也就是=),要不然賦值的過程中會出錯

㈦ C語言。怎麼刪除結構體里的某個成員,就是增刪改查里的刪我只學到結構體。

例如
struct student s[10];
想要刪除s[5],只需將其之後的元素依次往前移將前一個元素覆蓋就好了,然後最後一個元素不用就行了!

㈧ C語言結構體文件內容的刪除以及排序

恐怕要將文件中所有數據讀取到內存,

再查找和刪除內容,
再寫會文件

㈨ C語言里如何清空結構體內的數據

memset((char*)&test,0,sizeof(test));試試。我是這么做的·。 補充: 或許是for(i=o;i<10;i++)memset((char*)&test[i],0,sizeof(test[i]));//裡面的i是你想要清空的那個變數 追問: 能詳細講解一下這兩個地方嗎(char*)&test \sizeof(test) 回答: 函數原型:memset(void *, int, size_t);(char*)&test 是第一個參數,表示test結構體的首地址&test強制轉化為char型的。sizeof(test)是計算test結構體的大小0表示清空。 追問: sizeof()裡面的結構體可以用結構體指針代替嗎? 回答: 應該不行·。sizeof()括弧里是數據類型,所以貌似我上面寫錯。應該是memset((char*)&test1[i],0,sizeof(test)); 追問: 好像我用指針也通過了,........竟然沒報錯,而且數據也確實清空了

㈩ C語言 結構體元素刪除

#include<stdio.h>
structPeople
{
intNo;
intage;
};
intmain()
{
structPeopleStus[5]={{1,34},{2,23},{3,25},{4,28},{5,31}};
inti,id,k=0;
scanf("%d",&id);
for(i=0;i<5;i++)
{
if(id==Stus[i].No)
k=1;
if(k)
Stus[i]=Stus[i+1];
}
k=0;
for(i=0;i<4;i++)
{
printf("%d%d ",Stus[i].No,Stus[i].age);
}
return1;
}//解決請採納

熱點內容
用戶訪問表空間 發布:2025-01-16 20:07:07 瀏覽:943
java代碼自動編譯 發布:2025-01-16 19:58:14 瀏覽:313
編程很困難 發布:2025-01-16 19:58:09 瀏覽:673
gg登錄源碼 發布:2025-01-16 19:58:07 瀏覽:292
微信收藏表情文件夾 發布:2025-01-16 19:28:57 瀏覽:15
ra伺服器搭建 發布:2025-01-16 19:28:12 瀏覽:18
javaftp讀取 發布:2025-01-16 19:28:02 瀏覽:185
樂課上傳作業 發布:2025-01-16 19:24:58 瀏覽:936
哈爾濱python培訓 發布:2025-01-16 19:19:30 瀏覽:915
java對象與線程 發布:2025-01-16 19:14:59 瀏覽:897