32 ビット OS がサポートする RAM の量をテストしようとしています。
こんにちは、アプリを 32 ビット OS から 64 ビット OS に変換しています
すべてがより多くのメモリを占有するものは、ポインターが2倍になることを知っています。プログラムがMIBではなくMBで機能するように、プログラムの下で私を助けてください
このプログラムを試しましたが、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;
}