题目分别收录于 牛客网 在线编程-语法篇-C++入门-02复合类型-CPP29 和 CPP57
在这里插入图片描述
在这里插入图片描述

new运算符和delete运算符

new 运算符和 delete 运算符用来动态分配/撤销内存空间。new 运算符用来分配内存空间,delete 运算符用来撤销内存空间

new 运算符使用格式:

new 类型[初值];

例如:分配一个存放整型一维数组空间,且数组有n个元素:

new int[n];

用 new 分配数组空间时不能指定初值。

delete 运算符使用格式:

delete[]指针变量

例如:首先分配一个存放整型一维数组空间,并将返回的指向整型数组的指针赋给指针变量p ,然后撤销用 new int[n] 分配的空间:

int *p = new int[n];
delete []p;

在指针变量前面加上一对方括号,表示对数组空间的操作。

new 和 delete要配合使用。

⭐️ 题目1

描述

键盘输入一个正整数 n,创建大小为 n 的数组 (采用动态数组的方式),将数组中的元素初始化为 n、n+1、…、2n - 1。并输出数组中的元素。

输入描述:

键盘输入一个正整数 n

输出描述:

输出数组中的元素,元素和元素之间使用空格隔开

示例1

输入:

3

输出:

3 4 5

初始代码:

#include <iostream>
using namespace std;

int main() {

    int n;
    cin >> n;
    
    // write your code here......
    

    return 0;
}

⭐️ 代码1

本题属于简单题。

首先分配一维数组的空间,然后利用指针对数组赋值,最后撤销空间。

#include <iostream>
using namespace std;

int main() {

    int n;
    cin >> n;
    
    int *p = new int[n];
    
    for(int i = 0; i < n; i++)    
    {
        *(p+i) = n + i;
        cout << *(p+i) << " ";
    }
    
    delete []p;
    
    return 0;
}

⭐️ 题目2

描述

输入一个正整数 n,创建大小为 n∗nn*nnn 的二维数组 aaa (采用动态数组的方式),将 a[i][j]a [ i ] [ j ]a[i][j] 初始化为 i+ji+ji+j ( 0≤i≤n0 ≤ i≤n0in0≤j≤n0 ≤ j ≤ n0jn )。并输出数组中的元素。

输入描述:

输入一个正整数 n

输出描述:

输出 n 行,每行 n 个用空格隔开的整数表示数组 a

示例1

输入:

2

输出:

0 1
1 2

初始代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    // write your code here......
    
    return 0;
}

⭐️ 代码2

本题属于入门题。

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    
    int *p = new int [n*n];
    
    for(int i = 0; i < n; i++)  
    {
        for(int j = 0; j < n; j++)
        {
            p[i+j] = i + j;
            cout << p[i+j] << " ";
        }
        cout << endl;
    }
    
    delete []p;    
    
    return 0;
}
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐