数组004 动态创建一维数组

复制代码
#include<iostream>
using namespace std;

//
// 动态创建一维数组 在堆区开辟连续的内存:
//    创建:
//        数据类型 * 指针名 = new 数据类型[数组长度];
//    释放:
//        delete [] 指针名;
// 注意:
//        1、动态数组没有数组名,不能用sizeof关键字
//        2、可以用数组表示法和指针表示法两种方式使用动态数组
//        3、必!须!使用delete[] 释放new[]申请出来的内存(不能使用delete )!!!!
//        4、不!要!用delete[] 去释放 不是new[]分配的内存 (c用的是malloc申请,free()释放) !!!
//        5、不要用delete[]重复释放已经被释放的内存,那样相当于操作野指针
//        6、对空指针用delete[]是安全的,用完指针之后应该将指针置空,p = nullptr
//        7、如果内存不足,调用new会产生异常,导致程序中止;如果在new关键字后面加(std::nothrow)选项,
//            则返回nullptr,不会产生异常。
// 
//        为什么用delete[]释放数组的时候,不需要指定数组的大小?因为系统会自动跟踪已分配数组的内存。
// 
// 
//

int main(void)
{
    int* p = new (std::nothrow)int[10];

    if (p == nullptr) {
        cout << "申请内存失败" << endl;
    }
    else {
        for (int i = 0; i < 10; i++)
        {
            p[i] = i;

            cout << p[i] << endl;
        }
    }
    delete[] p;
    p = nullptr;
    return 0;
}
复制代码

 

posted @   墨点Moz  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· [翻译] 为什么 Tracebit 用 C# 开发
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
点击右上角即可分享
微信分享提示