gpt4 book ai didi

c - 当记录增加时 Malloc 失败

转载 作者:行者123 更新时间:2023-11-30 14:45:07 26 4
gpt4 key购买 nike

我在代码中使用 malloc 进行内存分配,如下所示:

    a*aobj= malloc(sizeof(a)* (unsigned long) n*n);


if(aobj== NULL){
printf("Error. Allocation was unsuccessful. \n");
return 1;


}

a 是一个存储三个表结果的结构。当我运行 n>30000 条记录时,它失败并给出提供的错误消息。即使在类型转换之后,它也不起作用。我如何修改以运行它以获得更多记录?

最佳答案

假设您的结构体的大小为 16 字节,那么您尝试分配:

16 × 30000 × 30000 字节 = 14,400,000,000 字节 = 14.4 GB

这可能超过了您计算机的可用主内存。所以它失败了,因为你试图分配太大的内存块。

关于c - 当记录增加时 Malloc 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53247836/

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