我正遭受意外的行为; 这是问题定义:
我有应用程序通过UDP协议在LAN上进行通信.我正在从文本文件中读取IP地址和端口号.最初IP地址和端口号工作正常,但是一段时间后,存储在char数组中的IP地址已损坏,并且需要垃圾值.此外,文件写入也受此影响.我的意思是IP数组中的值也写在由同一个应用程序编写的文本文件中.我无法理解这是什么问题 - 你能帮忙吗?
这几乎可以肯定意味着你有一个缓冲区溢出 - 甚至可能是堆栈溢出.您可能正在将太多字节读取到太小的字节数组中,并且超出已分配空间的末尾并践踏其他数据(例如IP地址).
如果您使用的是Linux,请考虑使用valgrind来帮助诊断问题.
这很可能是由于访问某些数组的边界之外.它也可能是一个未初始化的指针问题.
如果您使用的是Linux,请尝试在valgrind下运行您的程序.确保所有阵列都足够大.考虑添加assert()
s来检查你的数组索引是否正常和那种事情.