C++ 动态申请一维数组 (无参类型)
在编程过程中,我们经常会使用数组来存放数据,因此需要直接申请足够大的空间来保证数组访问不会越界,但是即便这样,我们依然不 能 保证空间足够分配,浪费空间,而且有时也会报错所以我们需要动态申请。C语言中使用malloc和free动态分配内存和释放内存,在C++中保留了这两个函数而且使用new和delete更简单的进行内存的分配和释放。
运算符new用于内存分配的基本形式:
int *p=new int[n]; //定义一个整型指针变量p,new动态分配存放一个整数的内存空间,将首地址赋给指针变量p;
运算符delete用于释放分配内存的基本形式:
delete[] p;(首地址已经存放在指针变量p中)
下面是使用new和delete的一个例子:
动态创建
void *createArray(int n, size_t bytes)
{
char *arr = NULL;
arr = new char[n*bytes];//动态分配内存
return (void *)arr;//强制转换为无参类型