C语言 在合并编译 ( 多.c文件 ) 情况下 实现 linked list ( 链表 ) Chapter 1. Stage1&2.写main和node.h

本文适合C语言初学者,讲解在多文件编译情况下如何实现链表。首先介绍链表的必要性,由于数组长度固定可能导致的问题,然后阐述链表通过节点结构动态扩展的优势。接着,定义了`node`结构体和`_list`结构体,`_list`用于存储链表的头和尾节点。最后,给出了`main`函数的初步编写。
摘要由CSDN通过智能技术生成

本节是对 linked list 的编写进行预备,实现 main 函数的初步编写,并定义node的结构和引用 linked list 的结构

 本人是初学C语言编程,dalao 发现有什么谬误麻烦在评论区指出,轻喷,感谢!

 首先,为什么需要 linked link ( 链表 ) ?

 在常规的C语言中,我们的 Array(数组)只能有一个预先设定好的长度,如果超出,则程序会崩溃(segmentation fault). 而如果我们让数组“长大”,就必须创建一个更大的新数组,把旧数组里面的东西copy到新数组,再抹去旧数组(不然内存占用会暴涨),然后才能进行新的操作。

 显然,这种方法费时(复制)费内存(创建新的数组),所以我们考虑,类似于 在原有数组后面,直接添加新元素。

 但是,不太好运,内存分配并不会如你的愿。
 当你打开了一个dev C++并在运行程序,你的电脑内存大概会是这样子的。

what is in your RAM
 各种颜色代表的是各个部分对你的 RAM 的占用,很明显,在你想增长数组的区段,基本上都会有会被其他东西占用,你只能加数据在其他地方。
 但计算机找数组是,先根据你

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值