c - 有没有办法编写一个不断使用越来越多内存的程序?我想为此编写一个简单的 C 程序
问题描述
我使用了以下代码,但顶部命令中的 VIRT 列显示分配的常量内存。
#include <stdio.h>
int main (int argc, char *argv[])
{
while(1)
{
int *pointer;
pointer = malloc(10 * sizeof(int));
*(pointer+3) = 99;
}
}
解决方案
您需要初始化内存。
用于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 将分配的内存设置为零。
推荐阅读
- android - Android从第二个微调器中的第一个微调器获取所选项目,反之亦然
- javascript - 如何在 React 中显示保存为 blob 的图像
- c# - 为了读取数据库而不是 SqlDataReader,我在 LINQ 中使用什么?
- sql - 重复行并包含一个具有交替值的新列
- javascript - 类型错误:这不是一个函数
- performance - Dart 计时器动态更改持续时间
- javascript - 我试图在 javascript 中自动填充一些计算过的用户输入......你能告诉我为什么这总是出现解析错误吗?
- c# - 没有使用 MVVM 的 ComboBox 项目的可视化
- azure - 如何增加 MS Azure Custom Vision 中测试图像的数量?
- f# - hk 的 F# 算法