封装函数时候,函数内分配内存简单管理方法。
来源:互联网 发布:淘宝版阿里旺旺下载 编辑:程序博客网 时间:2024/04/30 13:39
网上常见人这样封装代码,这种代码缺点就是要手工处理new处理的内存空间。
//读取一个文件的内容到缓冲区,下面的代码仅是例子,不写错误处理。int LoadToBuffer(const char* filename, byte* buffer){ifstream ifs(filename);int filesize = static_cast<int>(boost::filesystem::file_size(filename));buffer = new byte[filesize];ifs.read(buffer,filesize);ifs.close();return 0;}
处理的办法,有下面几种。
1.用智能指针代替。
2.用vector<char>代替。
#include <iostream>#include <string>#include <vector>#include <fstream>#include <boost/filesystem.hpp>#include <locale>using namespace std;int LoadToBuffer(const char* filename, vector<char>& cv){ifstream ifs(filename);int filesize = static_cast<int>(boost::filesystem::file_size(filename));cv.resize(filesize);ifs.read(&cv[0], filesize);ifs.close();return 0;}int main(){std::wcout.imbue(locale("chs")); //wcout 显示中文vector<char> cv;LoadToBuffer("main.cpp", cv);wcout << (wchar_t*)&cv[2] << endl;//因为是UNICODE格式的文件,去掉前面的FFFE标准}
- 封装函数时候,函数内分配内存简单管理方法。
- 函数内变量内存分配
- 漫步IOS--函数帧、内存分配函数、内存管理函数
- 内存管理 - 11.13 分配函数的选择
- linux内存管理--实际分配函数 buffered_rmqueue
- Linux内存管理---内存分配函数的选择
- c程序中内存管理和内存分配函数[干货!!!]
- 内存管理之bootmem管理之对外分配函数
- ROUND_UP函数详解(STL内存分配的时候 内存对齐上调大小的函数)
- 内存分配函数
- 内存分配函数
- 内存分配函数总结
- 内存分配函数总结
- 内存分配函数总结
- 内存分配函数
- 函数分配内存
- 内存块分配函数
- 内存分配函数
- XCode 4 的调试定位技巧
- Xcode 4.4中LLVM compiler 4.0带来的Objective-C新语法特性
- 如何创建一个类似 Instagram 的使用 Web Service 作后台的应用
- 无敌项目经理
- phpbb3结合自己网站实现session登陆
- 封装函数时候,函数内分配内存简单管理方法。
- NG
- How to Install Git on Ubuntu 12.04
- 设计模式之4.2 Spring bean容器以及怎么从xml当中读取配置信息
- LAMP学习之: linux常用命令_2
- 关于linux下的软链接与硬链接
- labManage项目小结3
- 关于linux下的查找命令
- python 操作mysql 遇到中文问题