数据结构里的malloc函数

2017-11-10  本文已影响0人  梦在原点

在数据结构里经常会用到malloc函数,但是它的功能我一直都是很模糊的,今天在看数据结构的时候忽然感觉到顿悟,有一些心得和大家分享一下。
先分享这样的一段程序.

#include<stdio.h>
#include<malloc.h>
typedef struct Node
{
    int data;
    struct Node* next;
}NODE,*pNode;
int main(void)
{
    pNode Pa;
    pNode Pb=(pNode)malloc(sizeof(NODE));
    //printf("%d,%d,%d",Pa,Pa->data,Pa->next);
    printf("\n");
    printf("%d,%d,%d",Pb,Pb->data,Pb->next);
    return 0;
}

程序的输出结果是这样的


image.png

如果把第一个printf取消注释的话
运行的结果是这样的


image.png
由此可见malloc函数的作用
下面说一下我对这个函数的一点理解

malloc函数是为指向结构体的指针指向了堆内存里面的一个结构体变量,而这个结构体里面的值是系统自动分配的值。如果没用使用malloc函数,那么仅仅是开辟了一块栈内存空间,并没用一个可以指的结构体变量,换做Java来思考的话就相当于你并没有实例化对象,malloc就是实例化对象的一个过程。

上一篇下一篇

猜你喜欢

热点阅读