- 以往我们赋值指针变量
int xyz = 100;
int *p = &xyz;
-
C 语言中,我们常使用malloc函数来分配内存空间
-
C++中,我们尽量需要多使用new关键字
typename *pointer = new typename;
- 举例:====
int *pointer = new int;
-
此时,我们分配了4个字节大小的内存空间将其首地址赋值给了pointer,现在我就可以直接向pointer所指向的空间赋值了。
-
注意和 与
int xyz = 100;
不同,xyz是这段内存空间整个的名字,而我们先前用new关键字所定义的pointer指针是所分配的未命名的内存空间的首地址的名字。 -
new是在程序运行时分配内存空间,如果程序没有运行到这里,那么不会分配空间。
-
所以有可能会造成内存空间分配失败的情况,那么通常是电脑的虚拟内存不够所造成的。
-
如果是在手机上面,手机是没有虚拟内存的,如果物理内存不够,那么就会造成分配内存空间失败,此时,我们就需要捕获异常