c++ - 借助 new 关键字在 C++ 中创建指针数组
问题描述
下面的代码是什么意思?
int **matrix = new int*[n]
matrix
和在这里有什么区别int*[n]
?
解决方案
例如有板球队,你需要
由于您有 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 个连续的位置,但它是相同的指针。
在我们的例子中,它是指针数组
推荐阅读
- java - 找不到文件 当它在那里
- postgresql - 如何从 PL/pgSQL 函数中的 select 中获取请求的列?
- android - 使用自签名证书的 mockwebserver 握手失败
- python - 从 python 连接到 postgresql
- c - 您如何理解以下按位操作?
- azure - Azure Key Vault 中的主题备用名称为空
- amazon-web-services - 在 RDS 集群中的所有实例上创建 CloudWatch 警报
- r - 在R中的组内按行号对数据帧进行分类
- c - 如何在C中输出连续的字母
- html - HTML/CSS 如何使元素对一个元素透明但覆盖另一个元素