new,delete的一点理解

来源:互联网 发布:入侵私彩平台修改数据 编辑:程序博客网 时间:2024/06/15 19:51
#include <bits/stdc++.h>
using namespace std;


//new,delete本身不是函数(是关键字),但是 int* p=new int[10],就是调用了new运算符重载函数,是函数 
//new string(10);  这样写会报错(编译器当成强制类型转换了) invalid conversion from 'int' to 'const cahr*' 
//new/delete 、new []/delete[]要配对使用 
int main()
{
string* p=new string[10];
for(int i=0;i<10;i++)
*(p+i)="ABC";
for(int i=0;i<10;i++)
cout<<*(p+i)<<endl;
delete[] p;

int* p2=new int(10);//这里是分配了一个int类型的空间并初始化为10(不是new int[10],这样是分配了10个int类型的空间) 
cout<<*p2<<endl; 
delete p2;

string* p3=new string("Hello,World");
cout<<*p3<<endl;
delete p3; 

return 0;




更加详细的:http://www.cnblogs.com/hazir/p/new_and_delete.html

0 0
原创粉丝点击