gpt4 book ai didi

c++ - 如何初始化一个指向指针数组的指针?

转载 作者:行者123 更新时间:2023-12-01 14:44:01 35 4
gpt4 key购买 nike

我正在尝试初始化一个指向指针数组的指针。这是一个例子:

class MyClass { };

// INTENT: define a pointer to an array of pointers to MyClass objects
MyClass* (*myPointer)[];

int main(void) {

// INTENT: define and initialize an array of pointers to MyClass objects
MyClass * tempArray [] = {
new MyClass(),
new MyClass()
};

// INTENT: make myPointer point to the array just created
myPointer = tempArray;

}

当我编译时,我得到:
./test2.cpp: In function ‘int main()’:
./test2.cpp:15:19: error: cannot convert ‘MyClass* [2]’ to ‘MyClass* (*)[]’ in assignment
myPointer = tempArray;
^~~~~~~~~

最佳答案

首先,数组不是指针。您必须使用以下地址:

 myPointer = &tempArray;

接下来,当你写
T foo[] = { t1, t2 };

这只是用于的简写
T foo[2] = { t1, t2 };

请使用正确的类型( Live Example):
MyClass* (*myPointer)[2];

或者最好先使用 std::array<MyClass>。并忘记原始的拥有指针。改用智能指针。

关于c++ - 如何初始化一个指向指针数组的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59203521/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com