博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mem, MyString
阅读量:6764 次
发布时间:2019-06-26

本文共 1620 字,大约阅读时间需要 5 分钟。

MemB.h的代码:

#pragma once#ifndef MEMB#define MEMBtypedef unsigned char byte;class MemB{private:    byte * mem;    int size;    void ensureMinSize(int minSize);public:    MemB();    MemB(int sz);    int msize();    byte * pointer();    byte * pointer(int minSize);    ~MemB(void);};#endif

 

MemB.cpp的代码:

#include "stdafx.h"#include "MemB.h"#include 
using namespace std;MemB::MemB(int sz){ mem=0; size=0; ensureMinSize(sz);}MemB::MemB(){ mem=0; size=0;}int MemB::msize(){ return size;}void MemB::ensureMinSize(int minSize){ if(size

 

MyString的代码和main函数:

#include "stdafx.h"#include 
#include
#include "MemB.h"using namespace std;class MyString{ MemB *buf;public: MyString(); MyString(char * str); ~MyString(); void concat(char * str); void print(ostream &os);};MyString::MyString(){ buf = 0;}MyString::MyString(char * str){ buf = new MemB(strlen(str)+1); strcpy((char *)buf->pointer(),str);}void MyString::concat(char * str){ if(!buf)buf=new MemB; strcat((char*)buf->pointer(buf->msize()+strlen(str)+1),str);}void MyString::print(ostream & os){ if(!buf)return; os<
pointer()<

 

strcpy遇到的不安全问题可以通过这个来解决:

http://jingyan.baidu.com/article/ce436649fd61543773afd32e.html

 

1. char *strcpy(char* dest, const char *src);

把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间

src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。

 

2.extern char *strcat(char *dest,char *src);

把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')。

src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。

转载于:https://www.cnblogs.com/kateblog/p/5317512.html

你可能感兴趣的文章
Wannafly summer camp Day2I(思维)
查看>>
正则表达式 小结
查看>>
docker基础
查看>>
MongoDB的安装与python操作MongoDB
查看>>
CF:The Fault in Our Cubes(DFS)
查看>>
[导入]WAP技术与网站建立
查看>>
STM32F4的sct文件理解
查看>>
6、消息发布和订阅功能
查看>>
P4233 射命丸文的笔记
查看>>
剑指offer-合并两个排序的链表
查看>>
SQLBulkCopy使用实例--读取Excel写入数据库/将 Excel 文件转成 DataTable
查看>>
企业分布式微服务云SpringCloud SpringBoot mybatis (五)路由网关(zuul)
查看>>
详解 MySQL 5.7 新的权限与安全问题
查看>>
大型网站技术架构(六)网站的伸缩性架构
查看>>
LA 3644 X-Plosives
查看>>
mysql8.0+修改用户密码
查看>>
android应用的响应性设计
查看>>
IOS设计模式浅析之单例模式(Singleton)
查看>>
Nosql数据库分类
查看>>
移动短信网关返回信息状态代码说明
查看>>