c++中语句double ** A = new double *[n];如何解释,具体的实现机制是什么样的啊?

问题描述:

c++中语句double ** A = new double *[n];如何解释,具体的实现机制是什么样的啊?
可以这样理解(double *)* A = new double *[n];A为指向指针数组的数组
1个回答 分类:综合 2014-11-29

问题解答:

我来补答
这是动态定义一个大小为n的数组,然后把数组第一个元素的地址返还给指针a.用这种方法定义的数组占用的内存是在堆里.普通的数组定义不允许提供未知长度,也就是说n必须是个常量,在程序运算中的来的n是不能用的,所以你无法用普通的静态方法来定义任意大小的数组,也就是数组的大小永远是一样的.动态的方法不一样,因为内存分配不一样,这种方法允许你动态决定数组的大小,比如由一个函数返还一个n的值,然后建立一个大小为n的数组,灵活性更大.
 
 
展开全文阅读
剩余:2000