C-内存请求Linux



我有一个C程序,可以发出内存请求。运行程序之后,我使用免费的-g -t命令查看使用的内存。程序调用MALLOC函数,但不会调用免费功能。例如: 指针= malloc(900000000*sizeof(double))我以为称为占据RAM内存,但是当我使用自由命令时,免费内存不会改变。大约6兆。我多次运行该程序。该程序不释放内存,但免费内存不会改变。我认为免费内存操作是由c中的程序员负责的。我的程序比这更复杂,但是主要操作就是这样。

i不承担的意见,为什么自由(和被填充)内存不会改变。

正如乔纳森·莱夫勒(Jonathan Leffler)在他的评论中所说的那样,malloc()实际上并未分配您在 yem>物理内存中所要求的内存,当您使用内存。如果您写入从malloc()获得的内存,那么您会看到"免费"所看到的内存使用情况。

从Malloc Man页面上的注释下:

默认情况下,Linux遵循一个乐观的内存分配策略。 这意味着,当malloc()返回非无效时,无法保证 内存确实可用。

" free"报告物理内存用法,如free Man Page

中所述

最新更新