你有不定长的需求,用vector,或者自己定义类
【 在 laser2000 (掌上智能版都是大厦挂) 的大作中提到: 】
: 标 题: [HELP]数组指针及其引用的问题
: 发信站: 水木社区 (Tue Apr 28 14:36:25 2020), 站内
:
: 以下实现一个 mbarray[iblock][id][ivar]形式的三维数组的连续空间开辟,只是第二
: 位的尺寸不是一致的。
:
: 这其中以指针的方式将mbarray传进去,如果我要以引用的方式传递。怎么搞呢?怎么定
: 义数组指针的引用?
:
:
: template<typename T, int nvar>
: int allocMultiBlocksArray( const MULTIBLOCK_TYPE *grid, T (***mbarray)[nvar])
: {
:
: size_t ncells;
: ncells = grid->active_allcells;
:
: auto pdata = new T[ ncells ][nvar];
: auto pstart = pdata;
:
: typedef T (*Tbarray)[nvar];
: *mbarray = new Tbarray[grid->blocks];
:
:
: for (int b = 0; b < grid->blocks; b++){
: BLOCK_TYPE *blk = GetBlkPtr(grid, b);
: if (!blk->active) (*mbarray)[b]=nullptr;
: else{
: (*mbarray)[b] = pdata;
: pdata += blk->num_allcells;
: }
: }
: return ncells;
: }
:
:
: --
:
: ※ 来源:·水木社区
http://newsmth.net·[FROM: 222.90.67.*]
--
FROM 76.126.252.*