c-当记录增加时,Malloc失败



我在代码中使用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字节=14400000000字节=14.4 GB字节

这可能比你电脑的主内存还多。所以它失败了,因为你试图分配太大的内存块。

相关内容

  • 没有找到相关文章

最新更新