结构体指针,内存分配问题请教

weidu23 weidu23 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

首先声明,我采用的是Mac的Xcode软件编写的测试例代码,使用的是LLVM编译器,C99标准。

问题描述:malloc( sizeof( 结构体 ) ) 与 malloc( sizeof( 结构体指针 ) ) 有什么区别 ?

具体说明:
假定一个结构体


struct Stu{
int i ;
float f ;
double d ;
int * ip ;
float * fp ;
double *dp
}
定义2个变量 :
struct Stu *strup_1 = malloc(sizeof(struct Stu)) ;
struct Stu *strup_2 = malloc(sizeof(struct Stu*)) ;
打印1:sizeof(struct Stu) ; sizeof(struct Stu*) ;
打印2:sizeof(strup_1) ; sizeof(strup_2) ;

结果:
打印1的结果:40、8
打印2的结果:8 、8



问题具体:
问题1:请问,为什么struct Stu结构体的大小最大,有40,但是结构体指针的只有8 ? 只是因为 结构体指针是指针,指针大小都一样 ?
问题2:定义了2个变量,这两个变量已经malloc了,也就是说,已经开辟了内存大小,为什么还是指针的大小8 ,而不是实际开辟的大小?
问题3:定义的2个变量,一个是 malloc 结构体,一个是malloc 结构体指针,为什么打印出来的大小都一样,而且都是8,这是指针大小啊,不是实际开辟大小啊,怎么回事 ???
问题4:结构体指针分配内存,到底应该 malloc ( sizeof ( 结构体 ) ) , 还是 malloc ( sizeof ( 结构体指针 ) ) ???

在这请教了,各位 。

...全文

相关推荐

政府科技管理者如何提升区域科技成果转化成功率?.docx

政府科技管理者如何提升区域科技成果转化成功率?

BIZKEEN

LangGraph与Graphviz集成:生成高质量静态图

内容概要:展示如何将LangGraph图导出为Graphviz DOT格式,生成PNG/SVG。通过自定义布局和样式,呈现清晰的流程图。对比Mermaid,讨论适用场景。 0533zbyy.com 0595ty.cn www.zh-casting.com yobest2.com 10cd.cn

2601_96960507

科技中介服务机构如何通过智能化工具快速识别高价值技术成果?.docx

科技中介服务机构如何通过智能化工具快速识别高价值技术成果?

BIZKEEN

基于静止坐标系解耦控制的电压源换流器有功无功动态性能仿真复现研究(Simulink仿真实现)

内容概要:本文围绕“基于静止坐标系解耦控制的电压源换流器有功无功动态性能仿真复现研究”展开,利用Simulink搭建完整的电力电子系统仿真模型,深入复现并分析电压源换流器(VSC)在静止αβ坐标系下的有功与无功功率独立控制策略。研究重点在于通过设计电流闭环控制器实现功率解耦,结合αβ坐标变换、功率反馈计算与解耦补偿环节,有效抑制有功与无功分量之间的动态耦合效应,提升系统在负载突变、电网扰动等非理想工况下的动态响应性能与运行稳定性。文章详细阐述了控制器结构设计、参数整定方法及仿真验证流程,通过动态波形分析验证了解耦控制策略的有效性,为新能源并网、微电网及柔性输电系统中换流器的高性能控制提供了可复现的技术路径与理论支撑。; 适合人群:具备电力电子、自动控制及电力系统基础知识,从事新能源发电、微电网控制、柔性直流输电等方向的研究生、科研人员及电力电子领域工程技术人员。; 使用场景及目标:① 掌握电压源换流器在静止坐标系下的建模与控制实现方法;② 深入理解有功无功功率解耦控制的原理与关键技术;③ 获取可用于科研复现、课程设计或工程预研的Simulink仿真模型与参数设计依据; 阅读建议:建议结合Simulink仿真模型同步操作,重点关注电流环控制器设计、解耦项补偿机制及动态响应波形分析,可进一步拓展至不同控制带宽、参数失配及多工况扰动下的对比研究,深化对系统稳定性和鲁棒性的理解。

李锦科研

前端开发基于history.js的HTML5与HTML4浏览器兼容方案:单页应用无刷新历史状态管理技术实现-aOyBwNOK61792504621

内容概要:本文系统介绍了如何利用history.js实现单页应用(SPA)在HTML5c与HTML4浏览器间s草错发的无缝历史状态管理。通过封装原生History API并在不支持的浏览器中自动降级为哈希路由,history.js解决了因浏览器兼容性导致的后退按钮失效、URL混乱等问题。文章详细讲解了其核心机制,包括状态对象管理、自动模式切换(HTML5 pushState vs HTML4 哈希)、状态数据持久化以及针,对Safari、IE等浏\览器的兼容性修复方案,并提供了从入门到实战的完整示例,涵盖初始化、事,件监听、页面加载及性能优化技巧。;aOyBwNOK61792504621 tiantiankanqiua.com.cn tiantiankanqiub.com.cn tiantiankanqiud.com.cn tiantiankanqiuc.com.cn tiantiankanqiue.com.cn

2601_97196185
评论 10
收藏 已收藏
分享
返回顶部
weidu23
C语言 70,039 成员 243,237 内容