这两种写法有什么区别

第一种
malloc(100);
第二种
malloc(25*sizeof(int));

第一个分配100个字节的内存
第二个分配25个int类型所占字节的大小

没区别,只是第二种更能直观地表现出申请内存中想存储的类型及个数。

我觉得数值上没区别。但是申请内存的时候你自己心里得有个数,比如申请 int 型的,想申请几个,不能随便填写数字是吧。

有些平台int占2个字节,有些平台int占4个字节,第二种写法是考虑到移植的情况

首先,32位系统下,int型是4字节
64位系统下,int型是8字节
如果是单片机之类的16位系统,还有可能是2字节
那么第一种就写死了,可能随便移植的话会造成数组越界,而且可读性也比较差,修改起来也麻烦,万一脑抽算错了还会出bug