当前位置:首页 » 编程语言 » 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:38:07 浏览:422
流量密码如何改成 发布:2025-01-16 20:37:13 浏览:49
java判断是否是对象 发布:2025-01-16 20:31:04 浏览:884
python调用外部程序 发布:2025-01-16 20:14:09 浏览:396
缓解压力英语作文 发布:2025-01-16 20:13:31 浏览:64
javaname 发布:2025-01-16 20:13:15 浏览:21
用户访问表空间 发布: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