string 管理 char 数组, 摆脱new delete
来源:互联网 发布:asp数据库导出excel 编辑:程序博客网 时间:2024/05/24 03:23
新公司,维护一个旧代码:
一个内存越界问题:
c = *(sText+nLeng+1); // 读随便你*(sText+nLeng+1) = 0; // 越界两个字符,写坏内存
这会导致, 在无压力正常情况下运行不报错, 不core dump。
在大压力测试的时候(fork架构) , 某几个进程会报错 malloc(): memory corruption,而且没有core文件生成。
只能靠注释代码来排查。
又顺便发现了一个内存泄漏问题:
char *sDecodeText ;...sDecodeText = new char[Len+1]; // 后面竟没有delete
以上这些风格,明显就是C开发人员写出来的C++代码。
尝试用STL管理分配释放问题。
1. std::array<char, num>, 有 data()操作, 但array是个模版, num编译器决议, 我需要支持运行时决议的。
2. vector和string, 这个两个都符合要求, vector改内存后, 里面的计数不能添加, 本来也不是这样用的,污染代码
string 的c_str()还得const_cast一下,麻烦但也没有其他选择了。
0 0
- string 管理 char 数组, 摆脱new delete
- C++关于char*型数组的new与delete
- 内存管理 new、delete’
- 【C++】char二维的new和delete
- C#控制台基础 将char类型数组转换为string字符串 new string()
- 内存管理:new和delete
- 动态内存管理---new&delete
- 动态内存管理new&delete
- new和delete管理内存
- 动态内存管理(new/delete)
- 二维数组与new/delete
- new和delete数组类型
- PChar String Char数组
- char数组和string
- char数组构造string
- char* p = new char [20] delete p 出现问题!
- 指针和整数,指针和数组,new和delete,cstring和string
- 【C++】动态内存管理(new,delete,new[],delete[])
- jmeter 模拟网络带宽的设置
- new出来的对象一定要delete
- 修改DB2服务器的主机名
- centos下tomcat不能使用80端口的问题
- java语言中的关键字
- string 管理 char 数组, 摆脱new delete
- linux 查看电脑配置信息
- c# 微信支付,问题及解决
- 运用JS设置cookie、读取cookie、删除cookie
- zookeeper
- 顺时针打印矩阵(C语言代码)
- System V 信号量(三)之用信号量解决哲学家进餐问题
- 解决win8/8.1程序不能以管理员权限自动启动问题
- 利用DCC 工具调节AWB