动态分配数组
来源:互联网 发布:涵曦瘦身霜有害知乎 编辑:程序博客网 时间:2024/05/20 19:16
注意,删除操作不会删除该指针-它删除指针所指向的内存!
动态分配数组
动态数组的声明让我们运行程序时选择自己的大小。动态分配数组,我们使用新的和删除数组形式(通常称为新的[ ]和[ ]删除):
1234int nSize = 12;int *pnArray = new int[nSize]; // note: nSize does not need to be constant!pnArray[4] = 7;delete[] pnArray;
因为我们是分配一个阵列,C++知道应使用新的而不是新的标量版阵列版。从本质上讲,新的运营商称为[ ],[ ]即使不放在旁边的新关键字。
当删除动态分配的数组,我们不得不使用阵列版本删除,并删除[ ]。这会告诉CPU,需要清理的多变量而不是一个单一的变量。
值得注意的是,数组的访问做同样的方式与动态分配的数组与普通数组。虽然这看起来有点滑稽,因为pnarray显式声明为指针,记住阵列是真的只是在C++中指针吧。
最常见的一个错误就是新的程序员在处理动态内存分配是使用删除而不是删除[ ]当删除动态分配的数组。不这样做!使用标量版本的阵列上的删除会导致数据损坏或其它问题。
内存泄漏
动态分配的内存实际上没有范围。那是,它保持分配直到显式释放或直到程序结束。然而,指针用于访问动态内存分配遵循正态变量的作用域规则。这种不匹配可以创造出有趣的问题。
考虑下面的函数:
0 0
- 动态分配数组
- 动态分配数组
- 动态分配数组
- 动态分配数组
- 动态分配数组
- 动态分配数组
- c++数组的动态分配
- 动态分配二位数组
- 动态分配二维数组
- 动态分配二维数组
- 如何动态分配二维数组
- 如何动态分配多维数组
- new 动态分配数组空间
- 动态分配二维数组
- 动态分配数组空间
- 动态分配二维数组
- 动态分配二维数组
- 二维数组动态分配
- ios 判断是qq,银行卡,手机号等等公用的方法。
- zookeeper个人理解
- Java_泛型的基本应用
- Qt中model/view设计模式
- WIN7 完全卸载oracle11g步骤
- 动态分配数组
- MySQL数据库服务器逐渐变慢 该如何分析与解决
- Python 里的I/O文件操作
- 公司绝不会告诉你的10大秘密
- virsh常用命令
- (十四) 套接字 - select
- 黑马程序员_Java_JavaBean讲解
- VS2012版最常用的快捷键
- ARM汇编中LDR伪指令和LDR指