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会给出一个动态地址。有人请帮忙。
请解释一下为什么*以动态和静态两种方式开始初始化?
答案 0 :(得分:2)
我的第一反应:如果你读了那本书,就扔掉书。
我的第二反应:如果他们只是显示设置指针的不同有效方法,那么它没问题 - 我们没有足够的背景知道。
基本上你是对的 - 因为写的代码很糟糕。你忘记了malloced内存(所以它泄漏)。