在阅读一本书中的链表时,我被困在两行

时间:2015-07-15 04:09:20

标签: c++ linked-list

struct list{
    char data;
    list *next;
    }
    void main(){
    list *start,node1,node2;
    //below two lines got me
    start=(struct list*)malloc(sizeof(list));     //Dynamic allocation of memory of size list whose address is stored in start
    start=&node1;       // start holds the address of node1 which is not dynamically allocated .

我不明白为什么*如果第二个语句通过给它堆栈中的node1的内存地址(我理解的那个)来覆盖它,为什么* start会给出一个动态地址。有人请帮忙。

请解释一下为什么*以动态和静态两种方式开始初始化?

1 个答案:

答案 0 :(得分:2)

我的第一反应:如果你读了那本书,就扔掉书。

我的第二反应:如果他们只是显示设置指针的不同有效方法,那么它没问题 - 我们没有足够的背景知道。

基本上你是对的 - 因为写的代码很糟糕。你忘记了malloced内存(所以它泄漏)。