当前位置:网站首页>When and How to use MALLOC

When and How to use MALLOC

2022-08-09 09:01:00 Mike峰

计算机系统的四个内存区域:

(1)栈

(2)字符常量区

如存储 char *p_str=”cgat”;其中”cgat”就储存在字符常量区里面。

(2)全局区

存储全局变量、动态变量

(3)堆

动态分配的存储空间

什么时候需要分配动态存储空间呢?

对于int *p这样的指针,我们定义了之后却没有指定p到底在哪里,这个时候就需要我们分配空间(可以是动态分配存储空间,或者是初始化)

Note:我们在刚刚接触指针的时候遇到过这样的情况,int *p;p=&a;这种方法不是指针的动态分配内存,这个叫做指针变量的初始化!初始化同样也可以让指针变量有方向可指。

下面示例指出了malloc的使用方法:(摘自runoob)

结果:

Node* initNode(Node * head){
    head=(Node*)malloc(sizeof(Node));//创建链表第一个结点(首元结点)
    head->prior=NULL;
    head->next=NULL;
    head->data=1;
    Node * list=head;
    for (int i=2; i<=3; i++) {
        //创建并初始化一个新结点
        Node * body=(Node*)malloc(sizeof(Node));
        body->prior=NULL;
        body->next=NULL;
        body->data=i;

        list->next=body;//直接前趋结点的next指针指向新结点
        body->prior=list;//新结点指向直接前趋结点
        list=list->next;
    }
    return head;
}

原网站

版权声明
本文为[Mike峰]所创,转载请带上原文链接,感谢
https://blog.csdn.net/m0_58550000/article/details/120471003