new 将返回指向一个指针,指向分配的 内存,否则将引发异常。使用 new 时,需要指定要为哪种数据类型分配内存:
Type* Pointer = new Type; // request memory for one element
需要为多个元素分配内存时,还可指定要为多少个元素分配内存:
Type* Pointer = new Type[numElements]; // request memory for numElements
因此,如果需要给整型分配内存 并释放,可使用如下语法:
int pointToAnInt = new int; // get a pointer to an integer
delete Pointer;
多个元素分配的内存
int pointToNums = new int[10]; // pointer to a block of 10 integers
delete[] Pointer;
使用 new 分配内存,并使用 delete 释放它们
#include <iostream>
using namespace std;
int main(){
int* points_to_an_age = new int;
cout << "Enter your dog's age ";
cin >> *points_to_an_age;
cout << "Age " << *points_to_an_age << " is stored at " << points_to_an_age << endl;
delete points_to_an_age;
return 0;
}
使用 new[…]分配内存,并使用 delete[]释放它们
#include <iostream>
#include <string>
using namespace std;
int main(){
cout << "How many integers shall i reserve memory for? " << endl;
int numEntries = 0;
cin >> numEntries;
int* myNumbers = new int[numEntries];
cout << "Memory is stored at " << myNumbers << endl;
delete[] myNumbers;
return 0;
}