首页 > 解决方案 > 有没有办法编写一个不断使用越来越多内存的程序?我想为此编写一个简单的 C 程序

问题描述

我使用了以下代码,但顶部命令中的 VIRT 列显示分配的常量内存。

#include <stdio.h>

 int main (int argc, char *argv[])
 {
    while(1)
    {
        int *pointer;
         pointer = malloc(10 * sizeof(int));
         *(pointer+3) = 99;
    }
 }

标签: clinuxmemory-management

解决方案


您需要初始化内存。

用于memset初始化内存:

memset(pointer, 0, the_size);

您还可以使用calloc它不仅分配内存,还可以为您填充零:

pointer = calloc(10, sizeof(int));

关于 calloc: C 库函数 void *calloc(size_t nitems, size_t size) 分配请求的内存并返回指向它的指针。malloc 和 calloc 的区别在于 malloc 不会将内存设置为零,而 calloc 将分配的内存设置为零。


推荐阅读