小心 int 乘法溢出!
C/C++ 语言里, 绝大部分平台上 int 类型是 32 位的, 无论你的操作系统是否是 64 位的. 而一些常用的函数, 如 malloc(), 它接受的参数是size_t类型: void * malloc ( size_t size ); 如果你写出这样的代码: int mb = 3000; // 3000MB ~= 3GB void *p = malloc(mb * 1024 * 1024); // WRONG! 这是非常危险的, 因为那个乘法得到的结果也是 int 类型, 但已经溢出了…