int i=int(); //OK
int* pi=int*(); //error
如何正确地做到这一点?
答案 0 :(得分:2)
您可以使用统一初始化默认初始化它们。
int i{};
int *ip{};
像调用这样的构造函数是不必要的和复杂的,当然,对于某些类型的行为,就像你自己发现的那样。
如果你要做的是让指针指向为int分配的空间,你需要分配new
int *ip = new int;
或者给它一个现有的int的地址
int i{};
int *ip = &i;
答案 1 :(得分:1)
您无法构造指针。你得到它:
获取参考:
int x;
int* xpointer = &x; //pointer to x
使用new
创建
int* x = new int;
答案 2 :(得分:1)
尝试
int * i = new int();
这是基本的C ++,也许您需要熟悉动态内存分配。这是关于这个主题的足够好的资源:http://www.cplusplus.com/doc/tutorial/dynamic/