首页 > 解决方案 > 借助 new 关键字在 C++ 中创建指针数组

问题描述

下面的代码是什么意思?

int **matrix = new int*[n]

matrix和在这里有什么区别int*[n]

标签: c++arrayspointers

解决方案


例如有板球队,你需要

由于您有 Cricket* team;,这表明您有两种可能的之一

情况:

1) 指向单个 CricketPlayer(或任何派生的)类型的指针

2) 指向 CricketPlayer(但不是派生)类型数组的指针。

你想要的是一个指向 CricketPlayer 数组或派生类型的指针。那么你

需要**。

您还需要单独分配每个团队成员并将它们分配给数组:

            // 5 players on this team

          CricketPlayer** team = new CricketPlayer*[5];

          // first one is a bowler

          team[0] = new Bowler();

         // second one is a hitter

          team[1] = new Hitter();

           // etc

// 然后释放内存

         delete team[0];
         delete team[1];
         delete[] team;

在您的查询中,

           It can be understood as

              int *matrix[]=new int*[n];

所以有n个指针指向n个地方。

因为

               int *foo;

                foo=new int[5];

还将创建 5 个连续的位置,但它是相同的指针。

看到这个

在我们的例子中,它是指针数组


推荐阅读