new和delete

  • new和delete是运算符,不是函数。
    new

  • new运算符的例子:
    new int;//开辟一个存放整数的存储空间,返回一个指向该存储空间的地址(即指针)
    new int(100);//开辟存放一个整数的空间,并指定该整数的初值位100,返回一个指向该存储空间的地址
    new char[10];//开辟一个存放字符数组(包括10个元素)的空间,返回字符数组首元素的地址。
    new int[5][4];//开辟一个存放二维数组(大小为5*4)的空间,返回首元素的地址
    float *p=new float(3014159);//开辟一个存放单镜度数的空间,并指定该数的初值为3.14159,将返回的该空间的地址赋给指针变量。

  • new运算符使用的一般格式为 new 类型[初值],用new分配数组空间时不能指定初值,如果由于内存不足等原因而无法正常分配空间,则new会返回一个空指针NULL。
    delete

  • delete运算符使用的一般格式为
    delete 指针变量 (对变量)
    delete [] 指针变量 (对数组)
    例如撤销上述第五个例子:delete p;
    若将new char[]的地址赋给了指针pt,则撤销该数组:delete[] pt;

  • 例:

int main()
{
  Student *p;//假设已声明了一个Student的结构体类型
  p=new Student;
  p->name="wang fang";
  p->num=10123;
  cout<<p->name<<'\n'<<p->num<<'\n';
  delete p;
  return 0;
  • 例2:

在这里插入图片描述
在这里插入图片描述

#include  <iostream>
using  namespace  std;
void  fun(int  *a[],  int  m){
        //写一函数,输出整数矩阵的主对角线上最大元素坐标和值 
        int max=a[0][0],zb1=0,zb2=0;
	for(int i=0;i<m;i++)
	{
		if(a[i][i]>max)
		{
			max=a[i][i];
			zb1=i;
			zb2=i;
		}
	}
	for(int i=0;i<m;i++)
	{
		if(a[i][m-1-i]>max)
		{
			max=a[i][m-1-i];
			zb1=i;
			zb2=m-1-i;
		}
	}
	cout<<'('<<zb1<<','<<zb2<<") "<<max; 
}  
int  main()
{
    int  m;
    cin>>m;
    int  *a[m];//指针数组  

    for  (int  i=0;i<m;i++)
      {  
            
        a[i]=new int[m];
  //
            for(int  j=0;j<m;j++)
            {
                
        cin>>*(a[i]+j);
//
            }
            
//
      }  
    fun(a,m);
    return  0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值