zoukankan      html  css  js  c++  java
  • 链表与malloc的疑惑

    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无瓜了

  • 相关阅读:
    leetcode165
    leetcode63
    leetcode92
    leetcode86
    捣鼓Haskell
    递归操作链表
    treap(堆树)
    贪心策略 — 分数背包
    LeetCode.21
    LeetCode.94
  • 原文地址:https://www.cnblogs.com/wengst/p/13171088.html
Copyright © 2011-2022 走看看