如何将结构体数组和结构体指针混合使用?

Jioba颛顼 2019-09-03 04:31:20
以下是正确的代码截图和代码(我是小白),有两张图,第一张我是用结构体数组写的,我现在想改成第二张图那样写该怎么写,请大佬指点。小白不甚感激! 软件是dev c++。 原代码: #include<stdio.h> #include<string.h> struct STU { char name[20]; char sex; int ago; char num[20]; }; void OutputSTU(struct STU stu[5]) //定义函数OutputSTU用法 { struct STU stumax=stu[0]; int j=1; for(;j<5;++j) { if(strcmp(stumax.num,stu[j].num)<0)//strcmp的用法是两个作比较输出最大项 { stumax=stu[j]; } } printf("学生姓名:%s\n,学生性别:%s\n,学生学号:%d\n",stumax.name,stumax.sex,stumax.num); } int main(void) { int i; struct STU stu[5]; for(i=1;i<5;++i) { printf("请输入%d学生的个人信息:",i); scanf("%c %s %d %c",stu[i].name,stu[i].sex,stu[i].ago,stu[i].num); } OutputSTU(stu); return 0; }
...全文
283 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2019-09-04
  • 打赏
  • 举报
回复
电脑内存或文件内容或传输内容只是一个一维二进制字节数组及其对应的二进制地址; 人脑才将电脑内存或文件内容或传输内容中的这个一维二进制字节数组及其对应的二进制地址的某些部分看成是整数、有符号数/无符号数、浮点数、复数、英文字母、阿拉伯数字、中文/韩文/法文……字符/字符串、汇编指令、函数、函数参数、堆、栈、数组、指针、数组指针、指针数组、数组的数组、指针的指针、二维数组、字符点阵、字符笔画的坐标、黑白二值图片、灰度图片、彩色图片、录音、视频、指纹信息、身份证信息…… 为什么要有数据结构这个东东? 因为要将现实世界或者抽象理论中的各种数据保存在计算机外存(光盘、硬盘、U盘……)或内存(ROM、RAM、SRAM……)里面的二进制字节数组中。 然后让CPU这个只会执行预先保存好的加减乘除移位条件转移……等机器指令的家伙按照人的意志去处理这些数据。至于具体如何处理就是所谓算法。 推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。
NorZ 2019-09-04
  • 打赏
  • 举报
回复
#define MAX_STU_NUM 5
void DoSomething(struct STU *pStu) {
...
}

STU *p = (struct STU*)malloc(sizeof(struct STU) * MAX_STU_NUM);
for (int i = 0; i < MAX_STU_NUM; ++i) {
DoSomething(&(p[i]));
}

这样?链表的话,太麻烦,也不知道你的需求到底是啥
  • 打赏
  • 举报
回复
改成链表你要写链表的插入函数才行,不过就想把数组换成指针的话,那在使用的时候就要给指针分配内存空间才行了
Jioba颛顼 2019-09-03
  • 打赏
  • 举报
回复
是啊
  • 打赏
  • 举报
回复
是说改成链表来存吗?
Jioba颛顼 2019-09-03
  • 打赏
  • 举报
回复
引用 1 楼 阿大古 古古古的回复:
你是说自定义结构体内的那个name[20]和num[20]想变成char*吗?用数组存可以,换成指针的话你是说链表吗?
请问你是怎么改的
  • 打赏
  • 举报
回复
你是说自定义结构体内的那个name[20]和num[20]想变成char*吗?用数组存可以,换成指针的话你是说链表吗?

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧