C/C++中数据的存储

学java时了解到不同的数据在系统中存储的位置不一样,有的存在栈里,有的存在堆里。学C/C++时没注意过这个,最近学数据结构时遇到了问题:在定义一个结构体的指针时,系统如何给它分配的空间?从而让我想去了解C/C++中数据是如何存储的。同时在学递归时就一直听到系统栈这个词,这次可以一并学习。

在CSDN中了解到C语言程序运行时内存的分类方式,有四大类或五大类两种。在其中我要关注的是堆区和栈区。堆区用于临时申请,栈区用于函数中的临时变量的存储。一般来说堆区无限大,栈区有一定大小。

在定义一个结构体的指针时,系统如何给它分配的空间?这个我没看到,不过经过我在dev中的代码测试,定义的结构体指针分配了8个字节,和结构体的实际大小不同,这个指针仍然存储的是地址。经测试,指针定义时系统初始化让指针指向NULL,这时就不能令p->data为某值,而需先令指针指向某块分配了结构体空间的区域。

转载于:https://www.cnblogs.com/thesky/p/10663459.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值