关于new 、delete、及应用的使用
来源:互联网 发布:电视足球直播软件 编辑:程序博客网 时间:2024/05/06 07:32
C中使用malloc()、free()在自由空间中分配存储空间,C++中使用new 和 delete
new有3种形式
int *p=new int;
int *p=new int(10);
int *p=new int[20];
delete有2种形式
delete p;
delete [] p;
new表达式返回指向新创建对象的指针,通过该指针来访问此对象,比如:
int *p=new int; //new表达式在自由空间中分配了一个整形对象,并返回对象的指针,可用该地址来初始化指针p
delete p; //释放掉p指针指向的int类型对象所占用的内存空间
(1) 申请数组
int *p= new int[10]; //定义长度为10的为初始化的数组
delete [] p; //释放空间
string *pi=new string[10]; //申请能存放10个字符串的内存空间
(2) 动态申请空间
动态创建对象时,只需指定其数据类型,而不必为该对象命名
size_t n=get_size();
int *p=new int [n];
for(int *q=p;q!=p+n;++q)
(3)
int *p=new int(1024); //p指向一个值为1024的int对象
int i(1024) 等价于 int i=1024;
(4) 一维数组的动态申请
#include<iostream>
using namespace std;
int main()
{
int len;
cin>>len;
int *p=new int[len];//用指针p指向new动态分配的长度为len*sizeof(int)的内存空间
for(int i=0;i<len;i++)
{
*(p+i)=i+1;
cout<<*(p+i)<<endl;
}
delete[] p; //释放空间
return 0;
}
(5) 2维数组的动态申请与释放
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int main()
{
int num1;//行数
int num2;//列数
cout<<"Please enter the number for row and column: "<<endl;
cin >> num1 >> num2;
//为二维数组开辟空间
int **p;
p= new int*[num1];
for(int i=0; i<num1; ++i)
p[i] = new int[num2];
for(int j=0;j<num1;j++)
{
for(int k=0;k<num2;k++)
{
p[j][k]=(j+1)*(k+1);
cout<<setw(6)<<p[j][k]<<':'<<setw(8)<<&p[j][k];
}
cout<<endl;
}
//释放二维数组占用的空间
for(int m=0;m<num1;m++)
delete[] p[m];
delete[] p;
return 0;
}
- 关于new 、delete、及应用的使用
- new和delete的应用
- 类特定的new和delete的使用及理解
- C++中关于new和delete的使用
- C++中关于new和delete的使用
- C++中关于new和delete的使用
- C++中关于new和delete的使用
- C++中关于new和delete的使用
- C++中关于new和delete的使用
- C++中关于new和delete的使用
- C++中关于new和delete的使用
- C++中关于new和delete的使用
- new/delete相关应用及注意事项
- 关于new/operator new和delete/operator delete的看法
- 关于operator new及placement new,和相关的delete重载
- new和delete的使用
- new和delete的使用
- new和delete的使用
- The following types may not be used as proxies 异常
- 基于Flash/Flex 的相册 播放器
- INF文件写入读出
- 可变参数
- ╄→ 推 荐 : 寻 找 实 习 的 途 径 !!
- 关于new 、delete、及应用的使用
- php 通过网页的方式备份和还原mysql数据库
- sql server表结构处理备忘
- Nunit学习笔记1
- ArcIMS 解析字段类型为Date(type="91")日期时间
- 储存过程操作类
- Java面试题
- ORACLE多组织架构
- 架构设计涉及范围图