C++:new
还记得之前帖子中提到的malloc吗,new和malloc都可以申请和释放空间。
一般使用new有三种格式:
1.指针变量名=new+类型;
2.指针变量名=new+类型(赋予一个初始值);
3.指针变量名=new+类型[内存单元个数];
释放空间需要用到delete。
例子:
#include<iostream>
using namespace std;int main()
{int* p=new int(100);cout << *p << endl;//100delete p;char* str = new char[4];str[0] = 'a';str[1] = 'b';str[2] = 'c';str[3] = '\0';cout << str << endl;delete[] str;//释放数组的格式return 0;
}
在C++中用malloc要加强制类型转换,如:
#include<iostream>
using namespace std;int main()
{int* p = (int*)malloc(4);*p = 100;cout << *p << endl;free(p);char* str = (char*)malloc(4);str[0] = 'a';str[1] = 'b';str[2] = 'c';str[3] = '\0';cout << str << endl;free(str);return 0;
}
注意:
new和malloc可以混用,但在C++中我们常用new。
之后的帖子中会总结二者的区别。