为什么new关键字返回指针而不是引用?

4 c++ pointers

我知道new关键字返回指针,所以返回类型是void*.我的愚蠢问题是为什么new必须返回void*而不是void&?意味着当new他们创建的对象可以使用&运算符的地址返回该对象的地址时.

我知道指针和引用之间的区别.但最后我们使用指针而不是引用.请清除我的困惑谢谢.

小智 5

New返回用于在内存中分配空间的任何类型的指针,而不是void*

 auto p1 = new int[5];   // returns a pointer to an int pointing to the 1st element
 auto p2 = new short[5]; // returns a pointer to a short pointing to the 1st element
Run Code Online (Sandbox Code Playgroud)

引用只能分配一次,裸指针可以分配几次.您可以删除内存并分配更多内存并将其分配给同一指针.这是主要的区别.

delete[] p1;
p1 = new int[20]; 
Run Code Online (Sandbox Code Playgroud)