C++语言中new的用法
时间: 2023-09-20 07:10:18 浏览: 156
C++new 用法
C语言中没有new关键字,它是C++语言的关键字,用于动态分配内存,即在程序运行时,根据需要动态地申请内存空间。在C语言中,动态分配内存可以使用malloc函数和calloc函数。
malloc函数用于在堆上动态分配指定大小的内存空间,语法如下:
```c
void *malloc(size_t size);
```
其中,size_t是一个无符号整数类型,表示要分配的内存空间的字节数。该函数返回一个void类型的指针,指向分配的内存空间的起始地址。
示例:
```c
int *ptr = (int*)malloc(sizeof(int));
if(ptr == NULL) {
printf("Memory allocation failed.\n");
} else {
*ptr = 10;
printf("%d\n", *ptr);
free(ptr); //释放内存
}
```
calloc函数用于在堆上动态分配指定大小的内存空间,并将该空间中的所有位都初始化为0,语法如下:
```c
void *calloc(size_t num, size_t size);
```
其中,num表示要分配的内存块数,size表示每个块的大小,两个参数的乘积即为要分配的内存空间的字节数。该函数返回一个void类型的指针,指向分配的内存空间的起始地址。
示例:
```c
int *ptr = (int*)calloc(1, sizeof(int));
if(ptr == NULL) {
printf("Memory allocation failed.\n");
} else {
printf("%d\n", *ptr);
free(ptr); //释放内存
}
```
需要注意的是,动态分配的内存空间在使用完后需要及时释放,以免造成内存泄漏。释放内存的函数是free函数,语法如下:
```c
void free(void *ptr);
```
其中,ptr是要释放的内存空间的起始地址。释放内存后,该指针变为野指针,需要及时将其赋值为NULL,以避免误用。
阅读全文