这个问题是我在2020年刚开始学数据结构链表那一章遇到的,当时应该也没完全理解透彻,然后最近又遇到了,重新了解了一下。感觉网上许多人说的也未必正确,所以跟大家讲讲我的看法。
先得有两个知识前提:
1.首先是关于变量的内存分配问题。对于c里面自带的数据类型,只有定义和赋值两个环节,对于自定义的数据类型如struct,enum,union等,有声明,定义,赋值三个环节。然而变量的内存分配只在定义的时候进行。
2.再是指针的问题,指针是一种c自带的数据类型,指针自己的空间在定义指针变量的时候就会分配(如:int *p,struct LNode *p),然后就只剩下指针的赋值。它的赋值应当是一个内存空间当中的地址。

结论:结构体指针变量申请空间实质上不是给指针申请空间,因为指针在定义的时候就已经分配了内存,他有了空间了。实质上是相当于分配了一个结构体大小的内存在堆区里面给一个无名结构体,然后用这个结构体的初始地址给指针赋值。
malloc函数原型: void malloc(unsigned int size); //返回值是指向分配空间的首地址的指针
p=(struct LNode
)malloc(sizeof(struct LNode);

关于c/c++里面结构体指针变量的申请空间问题。相关推荐

  1. 为什么结构体指针需要malloc申请空间

    例如此时: int init(struct Node**head ) //结构体指针 初始化 { struct Node *newnode = (struct Node *)malloc(sizeof ...

  2. c语言学习笔记【结构体02】结构体指针变量与结构体变量的函数参数,C语言学习笔记结构体02结构体指针变量与结构体变量的函数参数.docx...

    C 语言学习笔记[结构体02]结构体指针变量与结构体变量 的函数参数 C 语言学习笔记之结构体指针变量一提指针,那可 是 C 语言的核心了,有多少学子曾拜倒在指针的脚下.单纯的说指针,其实并不难,但是 ...

  3. 结构体指针和结构体指针变量的区别

    文章目录 前言 一.普通结构体变量 二.结构体指针变量 三.结构体指针 完整代码如下: 前言 结构体变量主要有三种应用场景:1.普通结构体变量:2.结构体指针变量:3.结构体指针. 一.普通结构体变量 ...

  4. 结构体指针变量的定义

    最近在STM的GPIO结构体定义中看到源代码的时候,顺便复习下结构体指针变量的定义及typedef 的使用. 1.结构体类型定义 定义方式1: Typedef struct LNode {int da ...

  5. 结构体指针变量含义,结构体指针函数

    最近在STM的GPIO结构体定义中看到源代码的时候,顺便复习下结构体指针变量的定义及typedef 的使用. 1.结构体类型定义 定义方式1: Typedef struct LNode { int d ...

  6. c语言 返回函数是结构体指针变量,一个函数返回值为指向结构体的指针的问题...

    一个函数返回值为指向结构体的指针的问题 #include #include struct student { int num; char name[10]; struct student *next; ...

  7. 结构体变量和结构体指针变量作为函数参数传递问题

    字符串赋值:strcpy_s(pstu->name, "张三"); 需要引入头文件:#include <string.h> #include <stdio. ...

  8. C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题?

    C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题? 问题1:结构体指针最开始怎么分配内存?用sizeof()是不能确定大小的. 问题2:给结构体变量分配之后,是否还要 ...

  9. python结构体变量_结构体变量 和 结构体指针(示例代码)

    为什么结构体在声明变量不需要去动态的分配内存,而声明结构体指针后,如果对成员进行操作需要分配内存,或者需要定义. 首先变量的声明与定义: extern int i; //声明,不是定义 int i; ...

最新文章

  1. 微型计算机的什么接口主要作为打印机接口,微型计算机及其接口技术试题及答案(2006年10月)...
  2. 轉換--中文简繁体转换JS 代码
  3. 中原证券携手神策数据,筑就线上线下融合的数字化运营体系
  4. C++设计模式之策略模式(Strategy)
  5. postgresql+postgis安装
  6. 汇编:分段函数的值的计算
  7. python 自定义模块加密_Python开发【第一篇】Python基础之自定义模块和内置模块...
  8. selenium 问题:OSError: [WinError 6] 句柄无效
  9. JavaScript学习第八天笔记(Function)
  10. 服务器常见问题,如何解决“远程服务器返回错误”?
  11. Golang:后台管理系统Revel搭建教程
  12. python battleship_codecademy的Python里的battleship报错
  13. iPhone和iPad适配
  14. LoRa学习<二>:Rx Duty Cycle模式实验
  15. 计算机论文 大学保研,保研北大,两篇论文,三项专利,这是她的大学
  16. 手把手教你搭建SpringCloud项目(十)集成OpenFeign服务接口调用
  17. 安全审计——等级保护日志审计要求的一种解决方案
  18. Handler dispatch failed; nested exception is java.lang.OutOfMemoryError: Compressed class space
  19. linux 安装io all模块,linux 安装redis nodejs使用ioredis模块
  20. ZJFC 2008 暑假集训总结(自己写的PPT)

热门文章

  1. Numpy基础知识(摘录笔记)
  2. Gitee+typora+picgo+插件,markdown图床配置,一键将markdown中本地图片上传至图床
  3. 【玩耍】 NVIDIA 历代显卡提升 自制显卡天梯图
  4. Antd Tabs切换时状态遗留问题避坑
  5. 《浪潮之巅》 18 挑战者 Google公司
  6. 猜数字游戏c语言原理二进制,第一个c语言实现的猜数字游戏
  7. Speed Good Free(百度网盘第三方免登下载器)
  8. KYLIN立方体构建详解
  9. php余额宝收益源码,2021亲测PHP投资理财分红源码 带积分商城+余额宝+大转盘+教程...
  10. vue多张图片实现TV端长图浏览组件