zoukankan      html  css  js  c++  java
  • 链表基础:结构体变量和结构体指针

    #include <stdio.h>
    #include <malloc.h>

    typedef struct node {
        struct node*next;
        int data;
    }node;

    int main()
    {
        node*head;
        head = (node*)malloc(sizeof(node));   //指针动态申请一块内存,指向大小为sizeof(node)的内存空间
        head->data = 3;                                     //变量初始化
        head->next = NULL;
        printf("%d ", head->data);
        printf("指针为%d个字节 ",sizeof(head));  //虽然指向的结构体大小是八字节,但指针是四个字节。

        node a;                                      //声明一个结构体类型的变量
        a.data=1;                                   //初始化结构体变量
        a.next=NULL;                            //结构中的next指针不指向任何内存
        printf("该结构体为%d个字节 ",sizeof(a));   //结构体内存为八个字节(4(int)+4(指针)=8字节)

        free(head);                               //(动态申请的空间需要手动释放)释放head指向的内存,将内存数据清除
        head = NULL;                          //head指针为NULL,不再指向这一块内存。

        return 0;
    }

    注:不管指针指向哪种类型变量,指针本身存储所需要的空间大小依然是4字节。

  • 相关阅读:
    Linux下挂载新硬盘
    远程编写+调试服务器上的Python程序
    记一次CUDA编程任务
    CUDA核函数调用基础数学API的一个奇葩情况
    Python多线程常用包对比
    Python threadpool传递参数
    代码生成器
    从移动优先到离线优先(三)
    从移动优先到离线优先(二)
    从移动优先到离线优先(一)
  • 原文地址:https://www.cnblogs.com/mld-code-life/p/11749430.html
Copyright © 2011-2022 走看看