链表malloc总结网络上大神的分析,进行汇总,取精,改编!

现在写这个的时候我也不懂,可能写着写着就懂了!方便他人也方便了自己!
由于初学,若有疏漏欢迎批评,加以改正!
这篇文章的思想来自于以下链接:

  • c primer plus

  • https://www.cnblogs.com/ysys/p/6994091.html

  • https://www.cnblogs.com/Commence/p/5785912.html

  • 百度百科

  • https://www.cnblogs.com/xiaowenhu/p/3222709.html

  • https://www.cnblogs.com/xiaowenhu/p/3222709.html

  • https://blog.csdn.net/abc882715/article/details/78438508
    应该差不多了
    malloc的全称是memory allocation,中文叫动态内存分配,用于申请一块连续的指定大小的内存块区域以void*类型返回分配的内存区域地址,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。(百科)

    malloc在这里:#include <stdlib.h>或者#include <malloc.h>

    int等等,会根据相应类型来分配大小!而malloc会更灵活些,它会根据需求来申请一段内存,因分配的内存有随机性,所以是动态的!

    malloc()函数会找 到合适的空闲内存块,这样的内存是匿名的。也就是说, malloc()分配内 存,但是不会为其赋名。然而,它确实返回动态分配内存块的首字节地址。

    因指针可以访问地址,而malloc返回的是地址,所以可以用指针来访问它。返回的是首地址,所以就想数组的名字样(如a[20],这个数组名是a,首地址也是a,却可以通过printf("%s",a)来输出,就是因为有可以通过首地址来往下一个地址连续解析的功能;

    然而, 从ANSI C标准开始,C使用一个新的类型:指向void的指针。该类型相当于 一个“通用指针”(有引号)。malloc()函数可用于返回指向数组的指针、指向结构的指针等,所以通常该函数的返回值会被强制转换为匹配的类型.

栗子:double * ptd;
ptd = (double *) malloc(30 * sizeof(double));

这个的ptd是一个double型指针,(double*)是强制转换成double型指针,malloc(30*sizeof(double))=====要30个double的字节长度的地址,

发布了2 篇原创文章 · 获赞 7 · 访问量 254

猜你喜欢

转载自blog.csdn.net/qq_43572855/article/details/88384983