在使用上,malloc 和 new 至少有两个不同: new 返回指定类型的
指针,并且可以自动计算所需要大小。比如:
1
2
3
|
int
*p;
p =
new
int
;
//返回类型为int *类型(整数型指针),分配大小为sizeof(int);
|
或:
1
2
3
|
int
*parr;
parr =
new
int
[100];
//返回类型为int *类型(整数型指针),分配大小为sizeof(int) * 100;
|
而 malloc 则必须要由我们计算字节数,并且在返回后强行转换为实际类型的
指针。
1
2
3
4
5
6
7
|
int
*p;
p = (
int
*)
malloc
(
sizeof
(
int
) * 128);
//分配128个(可根据实际需要替换该数值)整型存储单元,
//并将这128个连续的整型存储单元的首地址存储到指针变量p中
double
*pd = (
double
*)
malloc
(
sizeof
(
double
) * 12);
//分配12个double型存储单元,
//并将首地址存储到指针变量pd中
|