new和malloc
时间: 2023-09-13 15:13:21 浏览: 122
Malloc和new区别
new 和 malloc 是在 C++ 和 C 语言中分别用于动态分配内存的关键字和函数。
在 C++ 中,可以使用 new 运算符来动态分配内存来创建对象。它可以为对象分配内存,并调用对象的构造函数来初始化对象。例如,可以使用以下语法来创建一个整数对象并分配内存:
```
int* myInt = new int;
```
这将在堆上分配足够的内存来存储一个整数,并返回指向该内存的指针。使用 new 分配的内存需要使用 delete 关键字进行释放,以防止内存泄漏。例如:
```
delete myInt;
```
相反,在 C 语言中,可以使用 malloc 函数动态分配内存。它接受一个参数,即要分配的内存大小(以字节为单位),并返回指向分配内存的指针。例如,在 C 中创建一个整数对象并分配内存的示例如下:
```
int* myInt = (int*)malloc(sizeof(int));
```
同样,使用 malloc 分配的内存需要使用 free 函数进行释放。例如:
```
free(myInt);
```
需要注意的是,new 运算符在分配内存时会同时调用构造函数进行对象的初始化,而 malloc 函数只是简单地分配一块内存,不会调用构造函数。这是 new 和 malloc 的一个重要区别。
阅读全文