鱼C论坛

 找回密码
 立即注册
查看: 2085|回复: 7

数组指针问题;各位大神烦请给个解释呀,实在理解不了最后一点

[复制链接]
发表于 2015-4-19 11:25:52 | 显示全部楼层
本帖最后由 QQ[我在线上] 于 2015-4-19 11:30 编辑

这主要是关于一个编译的安全性,
首先要知道程序内部有一个结构,用来保存语言的寻址方式和维护一些隐式的描述表,假设这个描述表被你访问并且破坏掉,那么你的 *a 所指向的内存或许没问题,那么真正的问题是 *(a +1) 这个地址的方向, 是向上找还是向下找,是 加一个字节还是 加四个字节,并且这里存不存在结构体对齐,
就结果而言,你会发现,最好的维护方法就是编译成你已经申请的内存空间,假设你指向的是一块系统的空间,如果不被你操作,那么将会丢失它的可用性,但是问题来了,如何申请一个指向系统的空间的指向?这需要你和系统打交道.在很开始学习 scanf 输入字符串的时候或许你已经早已经遇到这个问题,但是一般都是省略而过,不过还是告诉你存在这个问题,如果解释这个问题,会引出很多理论,包括系统变成和编译原理.所以,如果要深入这个问题,建议去看看有关的书籍,如果单纯是学习语言编程,就不用纠结这个问题,看到有类似情况的话,想办法躲避,
但个人认为,很多时候都不会采用这类编程
内存是一个线性结构,不存在三维空间或者多维空间,申请的空间一般都是按照程序内部结构维护,所以反编译的时候你会发现,它是一个有序的线性数据
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-24 05:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表