为什么malloc总是失败分配内存(9GB,但我有16GB物理内存)?

时间:2016-07-15 20:49:06

标签: c++ c

我相信我的ubuntu(64位应用程序)中有足够的内存(16G)用于此分配。 但它总是返回NULL。

以下是运行免费命令的内存信息。

             total       used       free     shared    buffers     cached
Mem:      16376100    3295024   13081076      41936      88852    1073808
-/+ buffers/cache:    2132364   14243736
Swap:     15998972          0   15998972

截图:

http://i.stack.imgur.com/QjW27.png

1 个答案:

答案 0 :(得分:2)

根据评论,我发现了。那是因为当我计算内存大小时,总和就会溢出。

另一种情况是我使用溢出的int n_dataset = 2453688725;n_dataset将为负数。