我的嵌入式系统运行 Linux 3.10.14。
在运行时,我的应用程序打印出这条消息。
ERR: Memory overflow! free bytes=56000, bytes used=4040000, bytes to allocate=84000
但是当我“释放”时,似乎我有足够的可用内存。
/ # free
total used free shared buffers
Mem: 27652 20788 6864 0 0
-/+ buffers: 20788 6864
Swap: 0 0 0
错误消息的任何可能根本原因? 或者如何使用空闲内存直到最后 1 个字节?
如果我遗漏任何信息,请发表评论。 谢谢!
最佳答案
根据free的输出,我们可以看到总共有27652字节,使用了20788字节,空闲了6864字节。
从您的应用程序打印出来,它似乎试图分配 84000 字节,但只有 56000 字节可用。
那么有个问题,你的系统有多少内存? 27652 字节或 4096000字节?
打印输出是从系统中获取的?
关于linux - 内存溢出!在 Linux 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45291624/