php5中一个字符串变量能存放多少个字符啊?
原则上,超过4个字符都是不对的,但是究竟输入多少才出问题,以及会出什么样的问题,这个是非常高深的。
我刚才在turbo
我告诉你,a[5]定义的a只能装4个字符,因为还要装一个结束字符\0。 原则上,超过4个字符都是不对的,但是究竟输入多少才出问题,以及会出什么样的问题,这个是非常高深的。 我刚才在turboc里面,输入8个字符就出问题了,什么问题呢:窗口死了,而且是在输出了12345678之后,还要让我输入,输什么都不能退出,ctrl+break都没用。 为什么稍微超出一点没有问题呢,因为计算机分配内存的时候有个对齐,比如是按照4字节对齐PHP字符串变量,那么定义的变量如果在暂用整数的多少个4字节之后,最后还需要一个字节,计算机会空3字节,这样只要在这个范围内就不出问题。 超过了变量分配的内存会出什么问题呢,本质上就是变量之后的内存会被破坏,例如你这样的定义chara[5],b[5];在a里面输入多余的内容实际上会存储在b的空间,b的数据就被破坏。我刚才测试的时候直接死了,是因为我没有在a之后定义我要使用的变量,可能那之后是系统有重要功能的数据区域。 大家知道unix是的程序主要都是c写的,以前看见一个小的c程序,一运行马上就出现了#提示符,摇身一变成为了超级用户,那就是利用某些系统功能的溢出进行攻击。学c的,要特别主要溢出问题。 (编辑:成都站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |