C和指针之动态内存分配之编程练习4

1、问题

4.编写一个程序,按照下图中的样子创建数据结构,最后三个对象都是动态分配的结构。第一个对象则可能是一个静态的指向结构的指针。你不必使这个程序过于全面--我们将在下一章讨论这个结构。

2、代码实现

#include <stdio.h>
#include <stdlib.h>

/**
编写一个程序,按照下图中的样子创建数据结构,最后三个对象都是动态分配的结构。第一个对象则可能是一个静态的指向结构的指针
head---->node---->node--->15
value      5         10       0
**/
typedef struct Node
{
   int val;
   struct Node *next;
}Node;

Node *make_node(int val)
{
    Node *p = malloc(sizeof(Node));
    if (p != NULL)
        p->val = val;
    return p;
}

int main()
{
    Node *head;
    head = make_node(5);
    head->next = make_node(10);
    head->next->next = make_node(15);
    head->next->next->next = NULL;
    return 0;
}

 
 
(0)

相关推荐

  • 前端程序员学好算法系列(四)链表

    24. 两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2->3-&g ...

  • C和指针之动态内存分配malloc、calloc、realloc简单使用和区别

    C和指针之动态内存分配malloc、calloc、realloc简单使用和区别

  • c++动态内存分配

    下面随笔是关于c++动态内存分配. 动态申请内存操作符 new new 类型名T(初始化参数列表) 功能:在程序执行期间,申请用于存放T类型对象的内存空间,并依初值列表赋以初值. 结果值:成功:T类型 ...

  • 动态内存分配连续内存空间的二维数组

    可以直接使用一维数组来模拟二维数组,下面的代码就是在此基础上,用一个二级指针指向一维数组的相应地方,详见代码 #include <stdio.h> #include <malloc. ...

  • 【链表3】动态内存分配

    文/Edward 这一小节是为了讲述第2小节链表而做的只是铺垫.在9.2节中,我们通过一种非常朴素的方式来为大家展示了"链式"数据结构的基本方法,即,我们先定义好一个结构体存储类型 ...

  • 一文读懂 Linux 内存分配全过程

    在<你真的理解内存分配>一文中,我们介绍了 malloc 申请内存的原理,但其在内核怎么实现的呢?所以,本文主要分析在 Linux 内核中对堆内存分配的实现过程. 本文使用 Linux 2 ...

  • 解读各种内存分配函数的差别

    今天我们来讲讲几种容易混淆的内存分配函数的区别,它们分别是:SHGetMalloc, SHAlloc, CoGetMalloc, 和CoTaskMemAlloc. 让我们先从简单的开始吧. 首先,Co ...

  • 程序编译后运行时的内存分配

    一.编译时与运行时的内存情况 1.编译时不分配内存 编译时是不分配内存的.此时只是根据声明时的类型进行占位,到以后程序执行时分配内存才会正确.所以声明是给编译器看的,聪明的编译器能根据声明帮你识别错误 ...

  • 创业公司的动态股权分配机制part1

    每天一本书day284 创业公司的动态股权分配机制part1 这是一本好书,纯干货的工具书,带给我很多思考,需要带着理解能力去阅读,但如果能有生活的话理解将会事半功倍.目前也有的地方不理解,但是可以为 ...

  • 创业公司的动态股权分配机制part2

    每天一本书day285 创业公司的动态股权分配机制part2 今天的阅读又开始打起了瞌睡,看的是似懂非懂,因为超出了我的认知范围.越看越看不懂,看来动态股权分配机制是一个复杂的机制,但是掌握了相信一定 ...