我知道这个网站上有数以百万计的类似问题,但没有人指出我难以理解的主题。
我想为这样的整数指针分配一个整数文字:
login logout hrs eid
2017-01-11 08:30:00 2017-01-11 17:30:00 09:00:00 1
2017-01-12 08:30:00 2017-01-11 17:30:00 09:00:00 1
2017-02-01 08:30:00 2017-01-11 17:30:00 09:00:00 1
2017-02-02 08:30:00 2017-01-11 17:30:00 09:00:00 1
2017-03-02 08:30:00 2017-01-11 17:30:00 09:00:00 1
2017-03-11 08:30:00 2017-01-11 17:30:00 09:00:00 1
但它给出了错误:
带括号的类型后跟初始化列表是非标准的显式类型转换语法。
此代码在C中完美运行。
如果这种类型的转换在C ++中是非法的,还有其他方法可以实现同样的目的吗?
答案 0 :(得分:8)
语法
int *p=(int []){7};
C99和C11都支持,但C ++不支持。
C ++ 11中的选项:
使用普通旧数组。
int p[] = {7};
使用std::array
。
std::array<int, 1> p = {7};
使用std::vector
。
std::vector<int> p(1, 7);