Node *p=(Node *)malloc(sizeof(Node));和Node p两个有什么区别???Node是一个结构体!谢谢!
malloc函数是动态分配内存空间函数,sizeof函数是计算字节大小函数,(Node *)是malloc函数的返回类型,Node *p=(Node *)malloc(sizeof(Node)),用malloc函数开辟一段新的内存空间,大小是node的大小,返回类型是指向node类型的指针,同时将这个地址指向p指针
而Node p则是定义了一个node的结构体变量
而Node p则是定义了一个node的结构体变量
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-06-21
Node *p 定义了一个Node结构体指针,并在堆上申请了一个Node结构体大小的内存空间,该指针需要调用free()释放,而Node p 只是声明了一个结构体对象
第2个回答 2012-06-21
区别就是内存分配的位置不一样,malloc 是在堆上申请的内存,使用完需要手动释放(free)
Node p 如果是在函数内部,则是在栈区分配内存,系统自动回收释放(函数执行完成后)本回答被网友采纳
Node p 如果是在函数内部,则是在栈区分配内存,系统自动回收释放(函数执行完成后)本回答被网友采纳