关于为什么要在链表中用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天前
|
编译器
练习使用动态内存相关的4个函数:malloc、calloc、realloc、free
在了解使用动态内存相关的四个函数之前,我们先了解一下,为什么要有动态内存分配?
14 0
|
11天前
为对象分配内存TLAB
为对象分配内存TLAB
|
16天前
|
程序员 编译器 C语言
C语言知识:动态内存管理(malloc free calloc realloc)
C语言知识:动态内存管理(malloc free calloc realloc)
|
1月前
|
Java 程序员 编译器
C语言中灵活多变的动态内存,malloc函数 && free函数&& calloc函数 && realloc函数
C语言中灵活多变的动态内存,malloc函数 && free函数&& calloc函数 && realloc函数
|
1月前
|
程序员 编译器 C语言
【C语言】动态内存管理之4个内存函数`malloc`,`free`,`calloc`和`realloc`深度了解
【C语言】动态内存管理之4个内存函数`malloc`,`free`,`calloc`和`realloc`深度了解
|
2月前
|
存储 编译器 程序员
【C语言】内存的动态分配与释放
【C语言】内存的动态分配与释放
29 0
|
2月前
|
存储 程序员 Shell
【C/C++ 内存管理函数】C语言动态内存管理大揭秘:malloc、calloc、realloc与new的对比与差异
【C/C++ 内存管理函数】C语言动态内存管理大揭秘:malloc、calloc、realloc与new的对比与差异
178 0
|
2月前
|
存储 C语言
怎样建立内存的动态分配
怎样建立内存的动态分配
8 0