最近,本大王利用C语言做数据结构时,遇到了许多与malloc相关的问题,特写此一篇来加深记忆并提醒广大初级coder。
前言:为什么使用malloc?
- 使用malloc()的作用:
C语言的数据结构实现中,到处是malloc()的使用,一般使用如图:(不必关心注释内,看代码即可)

观察其中malloc这一行,
这样的做法相当于告诉了程序,我们申请了一片地址,这片地址是中存了一个特定结构体类型的数据。且目前我们拿到的是这片地址的指针,可以利用指针,对该结构体做修改。
那么,如果我们不使用malloc会怎么样?
错误1:

如果我们在前言中的代码中,只是声明了Mystack* st; ,那么我们使用st中的que时,程序就会报错,显示这片异常,为什么异常呢,不用malloc申请空间,这片que相当于野指针,即:程序不知道取多大的地址、取哪里的地址去队que中的rear做初始化。虽然你声明的que带有rear和front。最简单理解就是:你没有向计算机声明:你把内存中的某片地址给了que,现在的que:是野指针,就是说que地址非法,你的que地址因为没有申请过,所以可能将来会被别的一些什么变量占据。
错误2:简单,但是可能偶尔会懵逼

贼简单的程序出了问题,刚刚申请了n1空间,但不能做n1->val赋值,不能访问,原来只是忘记了导包:#include<stdlib.h>
错误3:(关于数值)
某些数值特别大:首先检查是否做过变量赋值。
本文探讨了在C语言实现数据结构时malloc的重要性。通过实例说明malloc用于动态分配内存,避免野指针错误。未使用malloc会导致指针未初始化,引发异常。同时提到了忘记包含stdlib.h头文件可能导致的编译错误,以及大数值处理的注意事项。

被折叠的 条评论
为什么被折叠?



