std::string* stringPtr1=new std::string;
srd::string* stringPtr2=new std::string[100];
 
对应地 delete也应该使用相同的形式:
 
delete stringPtr1;
delete [] stringPtr2;
 
规则就是:使用new时用了[],必须在对应调用delete时也要使用[]。
如果new时没有用[],则调用delete时也不该用[]
 
在typedef中也一样:
当程序员以new创建tyoedef类型对象时,该以哪种delete形式删除之。
typedef std:: string AddressLines[4];//每个人的地址有4行,每行是1个string
 
由于AddressLines是个数组,如果这样使用new:
std::string* pa1 = new AddressLines;
那就必须匹配“数组形式”的delete:
delete pa1;//行为未定义;
delete [] pa1;//OK
 
为避免此类错误,尽量不要对数组形式做typedef动作。
 
 
记住:
    如果在new表达式中使用[],必须在相应的delete表达式中也使用[]。
    如果在new表达式中不使用[],则一定要在delete表达式中使用[]
 

最新文章

  1. 今年暑假不AC
  2. 规则引擎集成接口(九)Java类对象
  3. 由一次程序崩溃引起的对new表达式的再次学习
  4. C#中的IntPtr类型
  5. SQL JOIN
  6. jquery给height拼接动态变量
  7. 【py】配置python环境
  8. 2015-09-17 001 日志与对话框公用类_public
  9. MySql配置参数很全的Mysql配置参数说明
  10. TTS异步+同步
  11. dll间接应用问题
  12. 【java系列】java开发环境搭建
  13. 【python小练习】简单的猜数字游戏
  14. Python2.7-内置函数
  15. docker使用自定义镜像zabbix服务
  16. API手册 常用功能
  17. Docker 搭建 etcd 集群配置
  18. Notes of fwt
  19. STM32之中断
  20. Android 串口蓝牙通信开发Java版本

热门文章

  1. 【LeetCode】Recursion(共11题)
  2. ZYNQ的Linux Linaro系统镜像制作SD卡启动(仅使用mkfs部分,其他部分待看)
  3. ivew select组件 DatePicker组件的清空
  4. Python repr, str, eval 使用小记 及 str 和 repr的区别
  5. ajax处理返回的三种格式(json格式 , xml通用格式 , html文本格式)(数据类型:整数、字符串、数组、对象)(基础最重要!)
  6. Ubuntu用户权限管理(chown, chmod)
  7. sql server 2000安装程序配置服务器失败
  8. 【MySQL】selectKey获取insert后的自动主键
  9. HDU 4812 (点分治)
  10. 8 November in 614