加入收藏 | 设为首页 | 会员中心 | 我要投稿 成都站长网 (https://www.028zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php5中一个字符串变量能存放多少个字符啊?

发布时间:2022-12-08 14:04:42 所属栏目:PHP教程 来源:转载
导读: 我告诉你,a[5]定义的a只能装4个字符,因为还要装一个结束字符\0。
原则上,超过4个字符都是不对的,但是究竟输入多少才出问题,以及会出什么样的问题,这个是非常高深的。

我刚才在turbo

我告诉你,a[5]定义的a只能装4个字符,因为还要装一个结束字符\0。

原则上,超过4个字符都是不对的,但是究竟输入多少才出问题,以及会出什么样的问题,这个是非常高深的。

PHP字符串变量_php 变量的类型_php static 变量

我刚才在turboc里面,输入8个字符就出问题了,什么问题呢:窗口死了,而且是在输出了12345678之后,还要让我输入,输什么都不能退出,ctrl+break都没用。

为什么稍微超出一点没有问题呢,因为计算机分配内存的时候有个对齐,比如是按照4字节对齐PHP字符串变量,那么定义的变量如果在暂用整数的多少个4字节之后,最后还需要一个字节,计算机会空3字节,这样只要在这个范围内就不出问题。

超过了变量分配的内存会出什么问题呢,本质上就是变量之后的内存会被破坏,例如你这样的定义chara[5],b[5];在a里面输入多余的内容实际上会存储在b的空间,b的数据就被破坏。我刚才测试的时候直接死了,是因为我没有在a之后定义我要使用的变量,可能那之后是系统有重要功能的数据区域。

大家知道unix是的程序主要都是c写的,以前看见一个小的c程序,一运行马上就出现了#提示符,摇身一变成为了超级用户,那就是利用某些系统功能的溢出进行攻击。学c的,要特别主要溢出问题。

(编辑:成都站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!