将文字分配给指针

时间:2017-02-27 06:00:16

标签: c++ casting

我知道这个网站上有数以百万计的类似问题,但没有人指出我难以理解的主题。

我想为这样的整数指针分配一个整数文字:

 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 ++中是非法的,还有其他方法可以实现同样的目的吗?

1 个答案:

答案 0 :(得分:8)

语法

int *p=(int []){7};
C99和C11都支持

,但C ++不支持。

C ++ 11中的选项:

  1. 使用普通旧数组。

    int p[] = {7};
    
  2. 使用std::array

    std::array<int, 1> p = {7};
    
  3. 使用std::vector

    std::vector<int> p(1, 7);