while(1){
static int i=1;
int *p;
if(p=malloc(1024*1024)) //assigning 1 mb space
printf("%d.",i++);
else
exit(0);
}
上記のプログラムが 1GB の RAM を搭載したシステムと 4GB の RAM を搭載した別のシステムで実行された場合、時間と i の値の違いは何でしょうか???
while(1){
static int i=1;
int *p;
if(p=malloc(1024*1024)) //assigning 1 mb space
printf("%d.",i++);
else
exit(0);
}
上記のプログラムが 1GB の RAM を搭載したシステムと 4GB の RAM を搭載した別のシステムで実行された場合、時間と i の値の違いは何でしょうか???
システムのRAMの量だけでなく、「システムで他に何が実行されているか」と「システムの構成は何か」にも依存するため、答えることはできません。たとえばrlimit
、Linux/Unix システムでプロセスが 256MB を超えて使用できないように設定した場合、システムに搭載されている RAM のギガバイトまたはテラバイト数に関係なく、256MB を超える割り当ては許可されません。
また、スワップスペースが 6GB の 1GB システムはi
、RAM が 4GB でスワップスペースがないシステムよりも高い値を示す可能性があると考えてください。
アプリケーションが割り当てることができるRAMの量を決定する「システム内のRAMの量」以外の変数があります。
実装の詳細なのでわかりません。C標準はこれについて何も述べていません。