我正在尝试测试32位操作系统支持多少RAM。
嗨我正在将应用程序从32位操作系统转换为64位操作系统只是检查一下4gb ram就足够了这就是我要检查的内容
所有占用更多内存的东西我知道指针会加倍请在程序以下帮助我,这样程序适用于MB而不是MIB
我试过这个程序,但是我错过了将MiB转换为MB的一些方法。
如何让以下程序工作?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc,char* argv[]){
size_t oneHundredMiB=100*1048576;
size_t maxMemMiB=0;
void *memPointer = NULL;
while((memPointer = malloc(maxMemMiB += oneHundredMiB)) != NULL) {
printf("Max Tested Memory = %zi\n",maxMemMiB);
memset(memPointer,0,maxMemMiB);
free(memPointer);
}
printf("Max Usable Memory aprox = %zi\n",maxMemMiB-oneHundredMiB);
return 0;
}