数据结构学习笔记(一)之 关于数据

本文介绍了内存的不同区域,包括栈段、数据段、bss段和堆,以及它们各自的特点和用途。强调了堆中大数据分配和释放的问题,以及字符串在.rodata段中的存储方式。同时指出,释放后的数据虽然不能立即访问,但依然存在于内存中,只有取消联系而不会被删除。

内存

        不同数据在不同区域,区域之间权限不同,段错误(segmentation fault)通常是权限超出了

        函数内的局部变量:栈段( stack segment )

        全局变量:

                        .data段:已初始化的全局变量

                        .bss段:未初始化的全局变量

        大数据:从堆(heap)中申请空间,因为栈段的空间是很有限的,但是堆中的空间理论上和约等于总内存一样大

                       特点:堆中申请的空间使用如果不释放,里面的内容会保留,再次被申请时这些老旧的内容会对新的使用造成困扰

        字符串:.rodata

                      字符串的本质:存储该字符串的首地址,且该首地址是常量

                                                结合数组理解,字符串其实就是一个数组头

                                                例:printf("%c","hello world"[1])

                                                       打印结果:e

                                                 可以把常量地址传给变量指针

                                                 char *p = "hello world"

        

数据被释放后,数据并不会消失,依然可以访问到

内存只会被建立联系和取消联系,不会被删除

         

        

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值