在你输入用户名之前
游戏程序就为了让你输入,所以就分配了缓冲区让你输入足够的字符。
密码也是一样。
当你输入完毕后。
这个函数可以说是用完了。
所以这个函数在栈就消失了,数据随之销毁。
为什么会销毁,因为这些数据已经被利用完毕了。
已经没有在存在的理由。
其他数据也相对一样。
就比如你使用malloc来分配内存,用完之后,用free销毁一样。
但这个是在堆管理的 而不是栈。
网游 提供给用户的只是一个客服端。
它只不过提供你资源而已。
实际上 你是在他的服务器里面玩 你自己的客服端只提供一些地图 物品图片等等。 真正的数据操作大部分是在游戏的服务端里面运转的。
比如传奇的登录方式 就是将你的信息从自己电脑发送出去 从传奇的服务器的7200端口登录 然后根据你的用户名 密码 来判断调用哪个数据 提供给你操作。
单机游戏 就不同了。
所有的操作需要的内存都在你的机器上分配。
网游哉网速不稳定的时候 为什么会卡 就是这个原因。
因为你的操作信息因为你的网络延时太长而卡的。
所以你的数据是被传送到服务端才被真正执行的。
也只有这样 才能让你和游戏里面其他玩家同步,比如一起打装备 一起PK,
当然内存的分配是由堆管理器来决定的,所以相同或者不相同 都有可能.
不一样,数据包的发送每次信息都不一样。
如果使用同样的内存地址,一是不稳定,二是不安全。
内存是随机存储,动态分配的,内存资源由操作系统调配,所以一个程序每次运行的时候,所被分配的内存地址,都应该是不同的
服务器每时每刻(或是一段间隔)在与客户端通信,取得客户端的状态(在线/离线),同时在一些重要操作(游戏开发者定义)会对游戏身份进行验证,即使你是已登录在线的用户,也还是会对你的用户名,密码再进行验证,这就说明在磁盘或内存中总有一块固定的存放身份信息的存储区,不过它固定的时间有多久,就不好猜测了