1.奇怪点:如果我只是需要一个结点的空间为什么malloc的转换形式写成——Node=(int *)malloc(sizeof(int))

自我解答:void *malloc(unsigned int size);其作用是在内存的动态存储区中分配一个长度为size的连续空间。此函数的返回值是分配区域的起始地址,或者说,此函数是一个指针型函数,返回的指针指向该分配域的开头位置。

重点就在荧光~,malloc分配的就是一块空间,返回的就是地址的指针,所以malloc应该是指针类型的

2.奇怪点:如果我设置了一个指针A,指向了指针B,我为A分配空间的话,是否也为B分配了空间呢?

自我解答:经过一番测试之后,其实这个问题很傻,总结根源是因为对指针,malloc的内核了解并不深,不透彻

首先明确:

int *haha,*hehe;
haha=&a;
hehe=haha;

这段代码的意思是:把haha指向的地址,告诉了hehe,就好像一个小秘密一样,但是指针太蠢了,一次只能记住一个小秘密,所以当执行如下语句

    hehe=(int*)malloc(sizeof(int));

hehe就只能记住新的秘密:malloc分配到的地址而与haha无瓜了

链表与malloc的疑惑的更多相关文章

  1. 排序算法----基数排序(RadixSort(L))单链表智能版本

    转载http://blog.csdn.net/Shayabean_/article/details/44885917博客 先说说基数排序的思想: 基数排序是非比较型的排序算法,其原理是将整数按位数切割 ...

  2. 排序算法----基数排序(RadixSort(L,max))单链表版本

    转载http://blog.csdn.net/Shayabean_/article/details/44885917博客 先说说基数排序的思想: 基数排序是非比较型的排序算法,其原理是将整数按位数切割 ...

  3. new与malloc

    首先将new与malloc的区别总结如下: 1 new可以自动计算需要分配多大的内存,而malloc必须指明. 2 new返回的指针是有类型的,malloc返回void*类型的指针. 3 new在分配 ...

  4. 「C语言」单链表/双向链表的建立/遍历/插入/删除

    最近临近期末的C语言课程设计比平时练习作业一下难了不止一个档次,第一次接触到了C语言的框架开发,了解了View(界面层).Service(业务逻辑层).Persistence(持久化层)的分离和耦合, ...

  5. C实现通用数据结构--单链表

    单链表概述 单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始. 从概念上讲,可以把链表想象成一系列连续的元素,然而,由于这些元素是动态分配的(C语言 ...

  6. 内存管理概述、内存分配与释放、地址映射机制(mm_struct, vm_area_struct)、malloc/free 的实现

    http://blog.csdn.net/pi9nc/article/details/23334659 注:本分类下文章大多整理自<深入分析linux内核源代码>一书,另有参考其他一些资料 ...

  7. 动态内存管理详解:malloc/free/new/delete/brk/mmap

    c++ 内存获取和释放 new/delete,new[]/delete[] c 内存获取和释放 malloc/free, calloc/realloc 上述8个函数/操作符是c/c++语言里常用来做动 ...

  8. (转)简单的Malloc实现

    现在,一般来说,我们可以实现malloc使得对malloc的调用将会被映射到系统调用sbrk上,sbrk(n)将会移动程序中断的位置-也就是程序的data段的最后.-偏移n个字节,这意味着,n个字节的 ...

  9. 动态内存管理:malloc/free/new/delete/brk/mmap

    这是我去腾讯面试的时候遇到的一个问题——malloc()是如何申请内存的? c++ 内存获取和释放 new/delete,new[]/delete[] c 内存获取和释放 malloc/free, c ...

  10. malloc实现机制

    使用过c语言的都知道malloc是一个动态分配内存的函数,还可以通过free释放内存空间. 如果我们想分析一下malloc的源码,这其实不是一会就能看懂的,但是我们可以讨论一下malloc的简单实现. ...

随机推荐

  1. ajv参数验证

    1.验证枚举类型 var schema = { "properties": { "data": { "type": "object ...

  2. 虚拟机搭建linux环境&&使用winscp连接搭建好的linux环境步骤

    一.需要的工具 虚拟机应用程序.一个镜像(ubuntu等).winscp可执行程序 二.安装虚拟机以及插入镜像 1)选择虚拟机 我安装的是VMware 就是这个,因为之前用的都是vitualbox现在 ...

  3. SQL正则查询--查询有效邮箱

    用户表: Users +---------------+---------+| Column Name | Type |+---------------+---------+| user_id | i ...

  4. Content Provider详解(太懒不想抄)

    1.Content Provider作用 进程间进行数据交互&共享,即跨进程通信   contentprovider作用图.png 2.Content Provider原理 content p ...

  5. vue2 安装swiper

    npm install swiper@5.4.5 -D

  6. BUU刷题记录

    [GWCTF 2019]mypassword xss+csp 打开页面可以注册登录 登进去提示不是sql注入 然后提示源码 看一下 然后有段后端代码写道了注释里 <!-- if(is_array ...

  7. laravel phpstorm ide-helper

    composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ composer create-proj ...

  8. 深度剖析CPython解释器》Python内存管理深度剖析Python内存管理架构、内存池的实现原理

    目录 1.楔子 第1层:基于第0层的"通用目的内存分配器"包装而成. 第2层:在第1层提供的通用 *PyMem_* 接口基础上,实现统一的对象内存分配(object.tp_allo ...

  9. django日志集成输出器

    在配置文件中 import os # ⽇志 LOGGING = { 'version': 1, # 自定义一个简单版本 'disable_existing_loggers': False, # 是否禁 ...

  10. c函数调用过程

    一.内存结构内存大致可以分为四个部分:代码段,静态存储区,堆,栈.具体划分如下图所示: 栈:在执行函数时,函数内部局部变量的存储单元都可以在栈上创建,函数执行结束后会自动释放内存.栈内存的分配运算内置 ...