在C++中当我们不清楚将要使用的内存空间参数(size == n)时,比如在一个函数int Fibonacci(const int n){} 中,如果使用空间换时间的方法,我们将要分配一个整型指针数组int *temp, 但是,这个数组的大小该是多少就是不确定的。在C语言里使用的是int * temp = (int *) malloc (sizeof(int) * n); 而最后需要将所申请的内存释放掉,即:free(temp); 在C++中使用 int * temp = new int[n]; ... delete [] temp; 而这两者的异同是什么呢?我最初也不是很清楚,所以在各大论坛搜了下,发现的确有很多以前经常用的但是不知所以然的地方,这里把他们梳理出来给大家分享。
(一) 申请和释放:
i. int * a = new int(10); 与 int * a = new int[10];