0

0

c++中如何动态分配数组内存_c++数组动态内存分配方法

冰火之心

冰火之心

发布时间:2025-09-30 21:10:02

|

899人浏览过

|

来源于php中文网

原创

使用new和delete可动态分配和释放数组内存,适用于运行时确定大小的一维数组,如int* arr = new int[10];,使用后需delete[] arr;释放。

c++中如何动态分配数组内存_c++数组动态内存分配方法

在C++中动态分配数组内存,主要使用newdelete操作符。这种方式允许程序在运行时根据需要分配和释放内存,特别适用于数组大小在编译时未知的情况。

使用 new 和 delete 分配一维数组

对于一维数组,可以通过 new 数据类型[大小] 来动态分配内存,用完后使用 delete[] 释放。

示例:

int* arr = new int[10]; // 动态分配10个整数的数组
for (int i = 0; i   arr[i] = i * 2;
}

// 使用完毕后释放内存
delete[] arr;
arr = nullptr; // 避免悬空指针

注意:必须使用 delete[] 而不是 delete,否则可能导致未定义行为。

动态分配二维数组

二维数组的动态分配有多种方式,常用的是“指针的指针”方法。

立即学习C++免费学习笔记(深入)”;

虎课网
虎课网

虎课网是超过1800万用户信赖的自学平台,拥有海量设计、绘画、摄影、办公软件、职业技能等优质的高清教程视频,用户可以根据行业和兴趣爱好,自主选择学习内容,每天免费学习一个...

下载
示例:手动分配 m x n 的二维数组

int m = 3, n = 4;
int** matrix = new int*[m]; // 分配行指针
for (int i = 0; i   matrix[i] = new int[n]; // 每行分配列空间
}

// 使用示例
matrix[1][2] = 10;

// 释放内存(顺序不能错)
for (int i = 0; i   delete[] matrix[i];
}
delete[] matrix;
matrix = nullptr;

推荐使用 std::vector 替代原生动态数组

虽然 new 和 delete 可以完成任务,但容易引发内存泄漏或访问越界。C++标准库提供了 std::vector,能自动管理内存,更安全、简洁。

示例:使用 vector 实现动态数组

#include
std::vector arr(10); // 创建10个元素的动态数组
for (int i = 0; i   arr[i] = i * 3;
}
// 不需要手动释放,超出作用域自动清理

对于二维数组:

std::vector<:vector>> matrix(3, std::vector(4));
matrix[1][2] = 10; // 正常访问

vector的优势包括自动扩容、无需手动 delete、防止内存泄漏、支持范围遍历等。

基本上就这些。如果只是简单练习,可以用 new/delete;实际开发中建议优先使用 vector。

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

306

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

222

2025.10.31

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

338

2023.08.02

int占多少字节
int占多少字节

int占4个字节,意味着一个int变量可以存储范围在-2,147,483,648到2,147,483,647之间的整数值,在某些情况下也可能是2个字节或8个字节,int是一种常用的数据类型,用于表示整数,需要根据具体情况选择合适的数据类型,以确保程序的正确性和性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

542

2024.08.29

c++怎么把double转成int
c++怎么把double转成int

本专题整合了 c++ double相关教程,阅读专题下面的文章了解更多详细内容。

53

2025.08.29

C++中int的含义
C++中int的含义

本专题整合了C++中int相关内容,阅读专题下面的文章了解更多详细内容。

197

2025.08.29

空指针异常处理
空指针异常处理

本专题整合了空指针异常解决方法,阅读专题下面的文章了解更多详细内容。

22

2025.11.16

数据库Delete用法
数据库Delete用法

数据库Delete用法:1、删除单条记录;2、删除多条记录;3、删除所有记录;4、删除特定条件的记录。更多关于数据库Delete的内容,大家可以访问下面的文章。

269

2023.11.13

excel表格操作技巧大全 表格制作excel教程
excel表格操作技巧大全 表格制作excel教程

Excel表格操作的核心技巧在于 熟练使用快捷键、数据处理函数及视图工具,如Ctrl+C/V(复制粘贴)、Alt+=(自动求和)、条件格式、数据验证及数据透视表。掌握这些可大幅提升数据分析与办公效率,实现快速录入、查找、筛选和汇总。

0

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
C# 教程
C# 教程

共94课时 | 7.2万人学习

C 教程
C 教程

共75课时 | 4.1万人学习

C++教程
C++教程

共115课时 | 13.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号