C++将动态内存设置为变量?

C++将动态内存设置为变量?,c++,C++,我可以将动态内存或分配分配给变量而不是指针吗?像int my_var=new int并在以后删除它吗?不,你不能。new int返回一个int*,将其强制转换为int的行为未定义 如果不喜欢显式指针,可以编写typedefint*int_ptr;并使用int_ptr my_var=new int 是的,您必须在某个时候删除我的变量。如果您只写: int n = 45; 但在使用动态分配时,必须使用指针和新运算符,以便以后删除: int * foo; foo = new int [5]; 如果

我可以将动态内存或分配分配给变量而不是指针吗?像int my_var=new int并在以后删除它吗?

不,你不能。new int返回一个int*,将其强制转换为int的行为未定义

如果不喜欢显式指针,可以编写typedefint*int_ptr;并使用int_ptr my_var=new int


是的,您必须在某个时候删除我的变量。

如果您只写:

int n = 45;
但在使用动态分配时,必须使用指针和新运算符,以便以后删除:

int * foo;
foo = new int [5];
如果您不希望您的程序在分配过程中由于某些异常而终止,请尝试使用nothrow。例如:

int * foo;
foo = new (nothrow) int [5];
if (foo == nullptr) {
// error assigning memory. Take measures. 
}

使用nothrow时,new返回的指针为空指针,程序将正常继续执行。

指针不是变量吗?我想你需要更具体一些。回答得很好,尤其是新的细节。