如何通过指针显式创建临时?

时间:2014-05-18 14:31:14

标签: c++ initialization

int i=int();    //OK  
int* pi=int*(); //error

如何正确地做到这一点?

3 个答案:

答案 0 :(得分:2)

您可以使用统一初始化默认初始化它们。

int i{};
int *ip{};

像调用这样的构造函数是不必要的和复杂的,当然,对于某些类型的行为,就像你自己发现的那样。

如果你要做的是让指针指向为int分配的空间,你需要分配new

int *ip = new int;

或者给它一个现有的int的地址

int i{};
int *ip = &i;

答案 1 :(得分:1)

您无法构造指针。你得到它:

  1. 获取参考:

    int x;
    int* xpointer = &x; //pointer to x
    
  2. 使用new创建

     int* x = new int;
    

答案 2 :(得分:1)

尝试

int * i = new int();

这是基本的C ++,也许您需要熟悉动态内存分配。这是关于这个主题的足够好的资源:http://www.cplusplus.com/doc/tutorial/dynamic/

相关问题