32bit OSだと、1プロセスでmallocできる限界ってどのくらいなんだろうと思って、調べてみた。 こんな感じで、メガバイト単位でmallocをして、失敗したら「失敗」て出力して、成功したら即freeするプログラムを作ってみた。 $ cat mallocTest.c #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]){ int input; input = atoi(argv[1]); char *buf = NULL; buf = (char *)malloc(input * 1024 * 1024); if(buf == NULL){ printf("メモリ確保に失敗しました\n"); return -1; } sprintf(buf, "正常終了\n"); printf("%s", buf