gpt4 book ai didi

c++ - 指针数组 vs ** : why does one give an error?

转载 作者:太空宇宙 更新时间:2023-11-04 15:16:41 26 4
gpt4 key购买 nike

我正在尝试创建一个指针数组(请不要建议 std::array 等,还有其他事情在进行)。从 C 我认为下面的代码是等价的,我想使用 [] 符号,因为我试图强调它是一个数组。但是,我收到以下错误。

g++ -c x.C

x.C: In constructor 'more_data::more_data()':

x.C:11: error: incompatible types in assignment of 'data*' to 'data* [0]'

class data { int a;int b; };
class more_data {
public:
data * bad[];
data ** good;

more_data(){
good = new data * [ 5 ] ;
bad = new data * [ 5 ] ;
}
};

最佳答案

你不能给数组赋值。但甚至在考虑分配 bad 之前, GCC 正确地发出信号“warning: ISO C++ forbids zero-size array 'bad' ”,因为你的 bad数组没有大小。

如果你想记录你的指针指向一个数组,相应地命名它:arrFoo , fooArr , foos ...

更好的是,使用 std::vector<data*>如果可以的话。如果你真的做不到,请一如既往地确保遵循五法则,并且不要忘记 delete[] .

关于c++ - 指针数组 vs ** : why does one give an error?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31457829/

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