struct A{...};
class B
{
struct A **pta;
void init();
}
void B::init()
{
pta = new (struct A *)[10];
}
//报错,c:\documents and settings\east\桌面 \irp\irpsolver.cpp(29): error C2059: 语法错误 : “[”
使用pta = new (struc A*)就没有错误
pta = new struct A *[10];
是啊~~
是你自己写错了吧~~
例如:
new函数模型为:
type_name pointer_name = new type_name [num_element];
下次小心点~~
pta = new (struct A* [10]);
等价于 pta = new struct A* [10];
但不等价于 pta = new (struct A* )[10];
pta = new (struct A*);//为申请一个struct A*型空间 ,[1]已省略
等价于 pta = new (struct A*[1]);
但不等价于 pta = new (struct A*)[1];
这也是个C++中的注意点,括号的使用