局部变量存放在堆里,当函数返回,或者超出作用域,分配给局部变量的内存会被注销。
考虑一个返回指针的函数,它指向一块内存,如果不动态分配内存,那么函数返回时该段内存被注销,在函数外通过指针访问这块内存会出错。
动态分配的内存在函数退出或者超出作用域后不会自动注销,只要你有这块内存的地址,随时可以访问,也不会被分配给别的函数(数据)。那么就存在一个问题,当你频繁的动态分配内存而不释放,你的内存就会被消耗完,所以当你不在使用这块数据的时候需要手动释放掉这块内存。
【c++】动态内存分配的理解
于 2020-03-26 23:38:48 首次发布