为什么这种语法不正确?
char* p = new char[dg.sizeof(Payload())];
我想创建一个新变量,这个字符串是dg的Payload部分的大小......我不明白该怎么做?谢谢
error: expected unqualified-id before 'sizeof'
error: expected `]' before 'sizeof'
error: expected ',' or ';' before 'sizeof'
答案 0 :(得分:4)
sizeof
不是函数,它是+
或*
之类的运算符,但它在编译时运行。它需要一个操作数,或者是parens中的typename,或者是一个表达式(不需要在parens中)。因此,如果Payload
是结构dg
的成员,sizeof dg.Payload
是函数指针成员的大小,sizeof dg.Payload()
是Payload()
的返回大小类型。
答案 1 :(得分:2)
sizeof是一个c / c ++运算符。它不能用作类方法。 http://en.cppreference.com/w/cpp/language/sizeof
答案 2 :(得分:1)
更改
char* p = new char[dg.sizeof(Payload())];
到
char* p = new char[sizeof(dg.Payload())];