gpt4 book ai didi

c - 什么时候应该将 errno 分配给 ENOMEM?

转载 作者:IT王子 更新时间:2023-10-29 00:40:43 24 4
gpt4 key购买 nike

以下程序在内存用完时被内核杀死。我想知道何时应该将全局变量分配给“ENOMEM”。

#define MEGABYTE 1024*1024
#define TRUE 1
int main(int argc, char *argv[]){

void *myblock = NULL;
int count = 0;

while(TRUE)
{
myblock = (void *) malloc(MEGABYTE);
if (!myblock) break;
memset(myblock,1, MEGABYTE);
printf("Currently allocating %d MB\n",++count);
}
exit(0);
}

最佳答案

首先,修复你的内核不要过度使用:

echo "2" > /proc/sys/vm/overcommit_memory

现在 malloc 应该正常运行了。

关于c - 什么时候应该将 errno 分配给 ENOMEM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10966121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com