C++ 如何在一个数组中保存更多指针
我想创建一个指向类实例的指针。许多实例-这就是为什么我制作了一个数组来保存所有这些。 但是如何将类中指针的值设置为0呢? 这就是代码。。。也许你知道我在说什么C++ 如何在一个数组中保存更多指针,c++,arrays,class,instance,C++,Arrays,Class,Instance,我想创建一个指向类实例的指针。许多实例-这就是为什么我制作了一个数组来保存所有这些。 但是如何将类中指针的值设置为0呢? 这就是代码。。。也许你知道我在说什么 public: CCharacter *pTeamMember[15]; 在另一个文件中: pTeams[team]->pTeamMember = 0; pTeams[i] = 0; 它会导致以下错误 错误C2440:“=”无法将“int”转换为“CCharacter*[15] 我不明白的是,这不会导致任何错误: pu
public:
CCharacter *pTeamMember[15];
在另一个文件中:
pTeams[team]->pTeamMember = 0;
pTeams[i] = 0;
它会导致以下错误
错误C2440:“=”无法将“int”转换为“CCharacter*[15]
我不明白的是,这不会导致任何错误:
public:
Team *pTeams[31];
在另一个文件中:
pTeams[team]->pTeamMember = 0;
pTeams[i] = 0;
有人有想法吗?
pTeamMember
不是指针。它是指向-CCharacter
的指针数组
在第二个示例中,您将分配给数组中的一个指针。您也可以使用pTeamMember
:
pTeams[team]->pTeamMember[i] = 0;
要将指针的值设置为0(假定您的意思是指向零),可以执行以下操作。注意,可以使用0或null pTR(它是C++ 11的有效)
int*p=nullptr代码>
关于您的具体示例,请更改
pTeams[team]->pTeamMember=0代码>
到
pTeams[team]>pTeamMember[index]=0
什么是CCharacter
和Team
?抱歉,请尝试:pteamms[Team]->pTeamMember[member]=0代码>(成员是对应的索引)您的第一次错误赋值尝试将整型常量赋值给数组。数组不允许作为赋值表达式中的左值。它们的“值”是固定的(数组中第一个元素的地址),不能更改。第二个示例是允许的,因为您正在为驻留在指针数组中的指针赋值。这是指针和数组之间的根本区别;指针保存地址;数组是地址。不要使用数组,使用std::vector
或者更好的方法,使用unique\u ptr
或shared\u ptr
的向量。