new和delete创建和释放动态数组

1.动态创建和释放一维数组

#include<iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    //分配动态一维数组
    int *arr=new int[n];

    for(int i=0;i<n;i++)
        cin>>arr[i];
    for(int i=0;i<n;i++)
       cout<<arr[i]<<" ";
    //释放arr数组
    delete[] arr;
    return 0;
}

2.动态创建和释放二维数组

#include<iostream>
using namespace std;
int main()
{
    int row,col;
    cin>>row>>col;
    //为行指针分配空间
    int **arr=new int *[row];
    for(int i=0;i<row;i++)
         arr[i]= new int[col];//为每行分配空间(每行中有col个元素)
    //输入二维数组的数
    for(int i=0;i<row;i++)
        for(int j=0;j<col;j++)
        cin>>arr[i][j];
    cout<<"*******************"<<endl;
     //输出二维数组中的数
    for(int i=0;i<row;i++)
    {
         for(int j=0;j<col;j++)
          cout<<arr[i][j]<<" ";
        cout<<endl;
    }
    //释放二维数组(反过来)
    for(int i=0;i<row;i++)
        delete[] arr[i];
    delete[] arr;
    return 0;
}

3.创建和释放多维数组

同二维数组,创建时从高维到低维,释放时从低维到高维。

原文地址:https://www.cnblogs.com/qiang-wei/p/10546153.html

时间: 2024-10-08 05:59:58

new和delete创建和释放动态数组的相关文章

C++中new和delete来创建和释放动态数组

在C++编程中,使用new创建数组然后用delete来释放. 一.创建并释放一维数组 #include<iostream> using namespace std; int main() { int n; cin>>n; //分配动态一维数组 int *arr=new int[n]; for(int i=0;i<n;i++) cin>>arr[i]; for(int i=0;i<n;i++) cout<<arr[i]<<"

C++中使用模板,new创建2维动态数组

1 // 使用模板和new创建2维动态数组 2 3 #include<iostream> 4 #include<exception> 5 #include<cstdlib> 6 #include<iomanip> 7 using namespace std; 8 9 template<class Type> 10 bool Make2DArray(Type **&x,int rows,int cols) 11 { 12 int i; 13

c++创建二维动态数组与内存释放

如下: #include <iostream> #include <windows.h> using namespace std; int main() { cout << "create dynamic two-dimension array..." << endl; int sizeX = 5; int sizeY = 8; // 申请 double** array = new double*[sizeX]; for (int i =

如何创建并使用动态数组?

基本思路是使用malloc()库函数来得到一个指向一大块内存的指针.然后想引用数组一样 引用这块内存,其机理就是一个数组下标访问可以改写为一个指针加上偏移量. int N; scanf("%d",&N); int *p; p=(int *)malloc(sizeof(int)*N);

【C++ Primer每日一刷之八】之九 创建动态数组

4.3.1. 创建动态数组 数组类型的变量有三个重要的限制:[数组长度固定不变],[在编译时必须知道其长度],[数组只在定义它的块语句内存在]. 实际的程序往往不能忍受这样的限制--它们需要在运行时动态地分配数组. 虽然数组长度是固定的,但动态分配的数组不必在编译时知道其长度,可以(通常也是)在运行时才确定数组长度.与数组变量不同,动态分配的数组将一直存在,直到程序显式释放它为止.每一个程序在执行时都占用一块可用的内存空间,用于存放动态分配的对象,此内存空间称为程序的自由存储区或堆. C 语言程

《C语言中动态数组的创建及引用》

C语言中动态数组的创建及引用 动态数组是相对于静态数组而言的,静态数组的长度是预定义好的,在整个程序中,一旦给定了数组大小后就无法改变,,而动态数组则不然,它可以根据程序需要重新指定数组的大小.动态数组的内存空间是由堆动态分配的,通过执行代码为其分配储存空间,只有程序执行到分配语句时,才为其分配储存空间. 对于动态数组,其创建比静态数组更麻烦一些,使用完必须由程序员自己释放,否则将引起内存泄漏,但是其使用非常灵活,能根据程序需要动态分配大小,因此相对于静态数组来说,使用动态数组的自由度更大. 对

一维动态数组和二维动态数组的创建和使用

#include<stdio.h> #include<malloc.h> void main(){ int *a,n=10,i; /* calloc()函数的原型是:(void *)calloc(unsigned n,unsigned size) calloc()函数用于向系统动态申请n个,每个占sizege字节的内存单元,函数返回值为所申请的内存空间首地址 malloc和calloc主要区别在于,当系统的内存只剩下一些非常小的碎片时,用calloc函数设计的动态数组的时间效率优于

【足迹C++primer】40、动态数组

动态数组 C++语言定义了另外一种new表达式语法,可以分配并初始化一个对象数组.标准库中包含 一个名为allocator的类,允许我们将分配和初始化分离. 12.2.1 new和数组 void fun1() { int *pia=new int[2]; //pia指向第一个int //方括号中的大小必须是整型,但不必是常量 typedef int arrT[42]; //arrT表示42个int的数组类型 int *p=new arrT; //分配一个42个int的数组:p指向第一个int /

C++ primer 第十二章笔记之 动态数组

new与数组 为了让new分配一个对象数组,必须在类型名之后跟[].在其中指明分配的数目; int *pia = new int [ get_size() ]; //[]内必须为整型,但不必是常量; typedef int arrT[24]; int * p = new arrT; //分配一个24个int的数组,p指向第一个int; 初始化,C++11:可用花括号{}; 动态分配一个空数组是合法的; 释放动态数组: delete p; delete [] pa; 智能指针与动态数组: 标准库提