下記のプログラムをwindowsのコマンドラインからgccでコンパイルして実行しました。
callocでメモリを確保した後、キー待ちになりましたが、タスクマネージャーやフリーソフトでメモリの空き容量を監視しても何の変化もありません。
callocで確保したメモリ領域のアドレスはそれなりに正しそうなのですが、なぜ空きメモリに変化ないのでしょう。
#include<stdio.h> #include <stdlib.h> int main(){ char *m[10]; int i; for (i=0;i<6;i++){//6というのはウチのPCで確保したメモリ容量による数字です m[i] = (char *)calloc(0x10000000,sizeof(char)); if(m[i] == NULL) { printf("%d\n",i+1); exit(-1); } printf("&m[%d]=%p\n",i+1,m[i]); } int c = getchar();// キー入力を待つ puts("Done!"); return 0; }

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/23 03:28
2019/01/23 03:29