C语言实现链表中结构体嵌套
1.首先,定义两个结构体,一个用于定义链表,一个用于定义数据
// 定义数据相关的结构体
typedef struct Student{
int stu_id;
char name[];
}Stu; // 定义链表相关的结构体
typedef struct Node{
Stu student;
struct Node *next;
}Node,*LinkedList;
2.链表初始化时需要注意student指向stu_id和name方式,用“.”
// 链表初始化
LinkedList LinkedListInit(){
Node *Head,*L,*LNew;
int id;
char name[];
// 申请节点空间
Head = (Node *)malloc(sizeof(Node));
// 判断是否有足够内存空间
if(Head == NULL){
printf("申请空间失败\n");
exit(-);
} L = Head;
L->next = NULL; for(int i=;i<;i++){
// 分配第一个节点
LNew = (Node *)malloc(sizeof(Node));
// 判断是否有足够内存空间
if(LNew == NULL){
printf("申请空间失败\n");
exit(-);
}
scanf("%d",&id);
LNew->student.stu_id = id;
// 注意字符串数组的名字就是首地址,不需要"&"
scanf("%s",name);
// 字符复制,用strcpy来复制
strcpy(LNew->student.name,name);
L->next = LNew;
LNew->next = NULL;
L = LNew;
} return Head;
}
具体源码demo.c
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#include <string.h> typedef struct Student{
int stu_id;
char name[];
}Stu; // 定义结构体类型
typedef struct Node{
Stu student;
struct Node *next;
}Node,*LinkedList; // 链表初始化
LinkedList LinkedListInit(){
Node *Head,*L,*LNew;
int id;
char name[];
// 申请节点空间
Head = (Node *)malloc(sizeof(Node));
// 判断是否有足够内存空间
if(Head == NULL){
printf("申请空间失败\n");
exit(-);
} L = Head;
L->next = NULL; for(int i=;i<;i++){
// 分配第一个节点
LNew = (Node *)malloc(sizeof(Node));
// 判断是否有足够内存空间
if(LNew == NULL){
printf("申请空间失败\n");
exit(-);
}
scanf("%d",&id);
LNew->student.stu_id = id;
scanf("%s",name);
strcpy(LNew->student.name,name);
L->next = LNew;
LNew->next = NULL;
L = LNew;
} return Head;
} int main(int argc, char const *argv[]) {
/* code */
Node *p;
p = LinkedListInit();
p = p->next;
while(p != NULL){
printf("%d\t",p->student.stu_id);
printf("%s\n",p->student.name); p = p->next;
} return ;
}

C语言实现链表中结构体嵌套的更多相关文章
- abap中结构体嵌套结构体。
1: 结构体中嵌套结构体. *&---------------------------------------------------------------------* *& Re ...
- C语言中结构体赋值问题的讨论
今天帮师姐调一个程序的BUG,师姐的程序中有个结构体直接赋值的语句,在我印象中结构体好像是不能直接赋值的,正如数组不能直接赋值那样,我怀疑这个地方有问题,但最后证明并不是这个问题.那么就总结一下C语言 ...
- C语言中结构体对齐问题
C语言中结构体对齐问题 收藏 关于C语言中的结构体对齐问题 1,比如: struct{short a1;short a2;short a3;}A;struct{long a1;short a2;}B; ...
- C语言中结构体赋值问题的讨论(转载)
今天帮师姐调一个程序的BUG,师姐的程序中有个结构体直接赋值的语句,在我印象中结构体好像是不能直接赋值的,正如数组不能直接赋值那样,我怀疑这个地方有问题,但最后证明并不是这个问题.那么就总结一下C语言 ...
- Go语言中结构体的使用-第2部分OOP
1 概述 结构体的基本语法请参见:Go语言中结构体的使用-第1部分结构体.结构体除了是一个复合数据之外,还用来做面向对象编程.Go 语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性. ...
- 6. Go 语言中结构体的使用
1. 结构体的定义格式 在go语言中结果的定义格式如下: 123 type structName struct { filedList} 列子如下: 1234 type Person struct { ...
- C语言结构体嵌套
#include <stdio.h> int main() { /*************************************************** *结构体嵌套:结构 ...
- 《挑战30天C++入门极限》C/C++中结构体(struct)知识点强化
C/C++中结构体(struct)知识点强化 在上一个教程中我们已经简单的阐述了什么是结构体了,为了进一部的学习结构体这一重要的知识点,我们今天来学习一下链表结构. 结构体可以看做是一种自定义 ...
- (一)一个工作任务引起的乱战——c#中结构体与byte[]间相互转换
一个工作任务涉及到c#与c++系统间的udp通信,处理了蛮长时间没有完成任务,但是期间接触到不少小知识点.本人是初接触c#,c++语言没有接触过.可能写的东西都很小儿科,暂且记录下来当工作日记把. 先 ...
随机推荐
- centos系统字符编码问题
1.cat /etc/locale.conf LANG="en_US.UTF-8" 2./etc/profile.d/lang.sh这个文件要有且可以正常执行(检查/sbin/co ...
- Nmap速查手册
http://drops.wooyun.org/tips/4333 From:http://highon.coffee/docs/nmap/ 0x00:说明 只是一个快速查询手册,理论的东西都没有补充 ...
- PHP学习记录第一篇:Ubuntu14.04下LAMP环境的搭建
最近一段时间会学习一下PHP全栈开发,将会写一系列的文章来总结学习的过程,以自勉. 第一篇记录一下LAMP环境的安装 0. 安装Apache Web服务器 安装之前先更新一下系统 sudo apt-g ...
- 为什么 Windows API 使用 stdcall 调用约定?
作者:知乎用户链接:https://www.zhihu.com/question/31453641/answer/52001143来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- C语言 · 大数加法
算法提高 大数加法 时间限制:1.0s 内存限制:256.0MB 问题描述 输入两个正整数a,b,输出a+b的值. 输入格式 两行,第一行a,第二行b.a和b的长度均小于1000位. ...
- Easyui 编辑表格行删除
1.问题描述 easyui 编辑表格新增一条数据后,删除最后一行删除不了,原因是没有提交数据acceptChanges. 源码中deleteRow方法,根据坐标获取行html,方法为opts.find ...
- C++ 类的继承一(访问控制)
//类的继承 #include<iostream> using namespace std; /* 面向对象中的继承类之间的父子关系 1.子类拥有父类所有的成员属性和成员函数(包括私有成员 ...
- sql 语句 查询两个字段都相同的方法
这是替代方法 先使用着 select * from ofgroup where groupId in (select groupId from ofgroup where uid ='". ...
- 关于Cocos2d-x开发一个游戏的过程自述
我在2016年12月6号完成了我的第一个自己独立完成的游戏,期间遇到各种各样的问题和困难,但是幸运的是问题都一一被解决了,现在我想总结一个整个的制作游戏的过程 使用的环境是VS2013+cocos2d ...
- 第二百五十六节,Web框架
Web框架 Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 举例: #!/usr/bin/env python #c ...