我试图在我的机器(1 Gb RAM 160 Gb HD Windows平台)上计算出最大程度上可以使用多少内存.
我读到malloc可以分配的最大内存仅限于物理内存(堆上).
此外,当程序超过内存消耗到某个级别时,计算机将停止工作,因为其他应用程序无法获得所需的足够内存.
所以要确认一下,我在C写了一个小程序:
int main(){
int *p;
while(1){
p=(int *)malloc(4);
if(!p)break;
}
}
Run Code Online (Sandbox Code Playgroud)
我希望有一段时间内存分配失败并且循环会中断,但是我的计算机挂起,因为它是一个无限循环.
我等了大约一个小时,最后我不得不强行关闭电脑.
一些问题:
c malloc operating-system memory-management computer-architecture
我正在尝试创建一个大尺寸阵列(约80000*80000)
我试过了
int *bigarray = new int[80000*80000];
Run Code Online (Sandbox Code Playgroud)
但它给了我错误
抛出'std :: bad_alloc'的实例后调用terminate
():std :: bad_alloc
我想要做的是创建一个社交网络的边缘矩阵.
任何人都可以告诉我如何创建一个大型数组或任何其他方法来解决它?
谢谢!