当前位置:  开发笔记 > 运维 > 正文

ansi c意外行为的问题?

如何解决《ansic意外行为的问题?》经验,为你挑选了2个好方法。

我正遭受意外的行为; 这是问题定义:

我有应用程序通过UDP协议在LAN上进行通信.我正在从文本文件中读取IP地址和端口号.最初IP地址和端口号工作正常,但是一段时间后,存储在char数组中的IP地址已损坏,并且需要垃圾值.此外,文件写入也受此影响.我的意思是IP数组中的值也写在由同一个应用程序编写的文本文件中.我无法理解这是什么问题 - 你能帮忙吗?



1> Jonathan Lef..:

这几乎可以肯定意味着你有一个缓冲区溢出 - 甚至可能是堆栈溢出.您可能正在将太多字节读取到太小的字节数组中,并且超出已分配空间的末尾并践踏其他数据(例如IP地址).

如果您使用的是Linux,请考虑使用valgrind来帮助诊断问题.



2> Artelius..:

这很可能是由于访问某些数组的边界之外.它也可能是一个未初始化的指针问题.

如果您使用的是Linux,请尝试在valgrind下运行您的程序.确保所有阵列都足够大.考虑添加assert()s来检查你的数组索引是否正常和那种事情.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有