c++ 在子函数中申请堆内存的空间无法在主函数中用free把在子函数中申请的堆内存释放,打代码编译时它说使用了未定义
3条回答
- SeaTalks 2016-11-02 03:48关注
应该是作用域的问题,子函数里面声明的变量作用域是子函数内,等返回主函数后,子函数在栈里的空间会被回收,所以在主函数中找不到这个指针变量,于是就报未定义了。
你可以在子函数return的时候将那个指针也返回给主函数,这样就可以在主函数中free掉那块内存了。祝好!解决 2无用
c++ 在子函数中申请堆内存的空间无法在主函数中用free把在子函数中申请的堆内存释放,打代码编译时它说使用了未定义
应该是作用域的问题,子函数里面声明的变量作用域是子函数内,等返回主函数后,子函数在栈里的空间会被回收,所以在主函数中找不到这个指针变量,于是就报未定义了。
你可以在子函数return的时候将那个指针也返回给主函数,这样就可以在主函数中free掉那块内存了。祝好!