我在代码中使用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字节
这可能比你电脑的主内存还多。所以它失败了,因为你试图分配太大的内存块。