new与malloc 的区别

来源:互联网 发布:c语言的头文件 编辑:程序博客网 时间:2024/05/21 06:48

转载自http://blog.csdn.net/zjc156m/article/details/16819357


3. malloc和new的区别
3.1 new 返回指定类型的指针,并且可以自动计算所需要大小。比如:   1) int *p;   p = new int; //返回类型为int* 类型(整数型指针),分配大小为 sizeof(int);   或:   int* parr;   parr = new int [100]; //返回类型为 int* 类型(整数型指针),分配大小为 sizeof(int) * 100;   2) 而 malloc 则必须要由我们计算字节数,并且在返回后强行转换为实际类型的指针。   int* p;   p = (int *) malloc (sizeof(int)*128);//分配128个(可根据实际需要替换该数值)整型存储单元,并将这128个连续的整型存储单元的首地址存储到指针变量p中  double *pd=(double *) malloc (sizeof(double)*12);//分配12个double型存储单元,并将首地址存储到指针变量pd中
3.2 malloc 只管分配内存,并不能对所得的内存进行初始化,所以得到的一片新内存中,其值将是随机的。除了分配及最后释放的方法不一样以外,通过malloc或new得到指针,在其它操作上保持一致。


0 0
原创粉丝点击