我遇到了意想不到的行为;这是问题定义:
我有一些应用程序通过 UDP 协议(protocol)在 LAN 上进行通信。我正在从文本文件中读取 IP 地址和端口号。最初,IP 地址和端口号工作正常,但一段时间后,存储在 char 数组中的 IP 地址被损坏,并且采用垃圾值。另外,文件写入也受此影响。我的意思是 IP 数组中的值也写入由同一应用程序写入的文本文件中。我不明白问题出在哪里 - 你能帮忙吗?
最佳答案
这几乎肯定意味着您有缓冲区溢出 - 甚至可能是堆栈溢出。您可能将太多字节读入太小的字节数组中,并且超出了分配空间的末尾并践踏了其他数据(例如 IP 地址)。
如果您使用的是 Linux,请考虑使用 valgrind帮助诊断问题。
关于c - ansi c 意外行为有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2995259/