关于为什么要在链表中用malloc来分配内存

简介: 关于为什么要在链表中用malloc来分配内存

关于为什么要在链表中用malloc来分配内存

不知道有没有人和我一样,在学习链表的时候心里搞不懂为什么要用malloc来分配内存,细细想了想,是因为知道用int也可以分配内存,总觉得可以用什么可以替代malloc来进行内存分配,想了想,突然就明白了了。

  1. 基础数据类型可分配内存,比如int a = 0 ;这就是分配了一块内存,同时为这块内存起了个暂时的名字(为什么是暂时呢?因为在内存释放后,这个内存空间又可以重新分配给别的变量),并存入了一个“0”(当然,在内存块中是一串二进制数)。
  2. 引用数据类型(自定义的对象等)为啥叫引用呢?比如就是给变量 a 所在内存赋予另外一个别名 b ,可以这么理解。引用数据类型可以像基础数据类型那样直接类型+变量名就分配内存了吗?当然不可以!参考基本数据类型定义的实现我们可以知道,分配内存需要知道该分配多大的空间,int 占4个字节我们已经很清楚了,但是直接给出一个对象我们是不知道需要的内存大小的,所以,在为引用数据类型分配内存时,我们需要使用malloc ,realloc《reallloc的使用》等函数来分配空间(其中可以自定义选择空间大小)。

下面是 malloc() 函数的声明。

void *malloc(size_t size)//size -- 内存块的大小,以字节为单位。

该函数返回一个指针 ,指向已分配大小的内存。如果请求失败,则返回 NULL。

!!!这不就能完全理解单链表的这段代码了吗

LNode* newNode = (LNode*)malloc(sizeof(LNode));

  • 为什么要强制转换呢?因为指针也是有数据类型的,错误的数据类型可能在访问数据元素时会出现问题。

以上是今天学习时的一些想法,欢迎指正。

相关文章
|
2月前
|
存储 程序员 编译器
在C语言中.如何正确地分配和释放内存docx
在C语言中.如何正确地分配和释放内存docx
17 1
|
2月前
|
存储 C++
C/C++数据类型从0到内存具体分配详解
C/C++数据类型从0到内存具体分配详解
|
5天前
|
程序员 编译器 C语言
C语言知识:动态内存管理(malloc free calloc realloc)
C语言知识:动态内存管理(malloc free calloc realloc)
|
2月前
|
存储 编译器 程序员
【C语言】内存的动态分配与释放
【C语言】内存的动态分配与释放
27 0
|
2月前
|
存储 程序员 Shell
【C/C++ 内存管理函数】C语言动态内存管理大揭秘:malloc、calloc、realloc与new的对比与差异
【C/C++ 内存管理函数】C语言动态内存管理大揭秘:malloc、calloc、realloc与new的对比与差异
177 0
|
2月前
|
存储 C语言
怎样建立内存的动态分配
怎样建立内存的动态分配
8 0
|
2月前
|
存储 机器学习/深度学习 Java
什么是内存的动态分配
什么是内存的动态分配
8 0
|
2月前
|
存储 算法 程序员
实现一个malloc内存分配器(图文并茂)
实现一个malloc内存分配器(图文并茂)
101404 0
|
3月前
|
C语言
C语言指针使用及动态分配内存
C语言指针使用及动态分配内存
38 0
|
4天前
|
Linux
Linux rsyslog占用内存CPU过高解决办法
该文档描述了`rsyslog`占用内存过高的问题及其解决方案。
24 4