C++ new一个数组时,指针移动程序崩溃问题
来源:互联网 发布:淘宝商城怎么开 编辑:程序博客网 时间:2024/06/01 10:28
问题代码:
#include <iostream>using namespace std;int main(){int a[] = { 12, 42, 6, 17, 32, 4, 19 };int *pia = new int[7];for (size_t i = 0; i < 7; ++i){pia[i] = a[i];}for (size_t i = 0; i < 6;++i){cout << *pia++ << " ";}cout << endl;delete [] pia;return 0;}
由于在输出*pia时用了++,改变了pia指针的位置,使得在delete [] pia时,无法找到头指针的位置,无法delete。
可以通过记录pia的初始位置,在输出完后,再复原
#include <iostream>using namespace std;int main(){int a[] = { 12, 42, 6, 17, 32, 4, 19 };int *pia = new int[7];int *pia_copy = pia;//记录pia的初始位置for (size_t i = 0; i < 7; ++i){pia[i] = a[i];}for (size_t i = 0; i < 7;++i){cout << *pia++ << " ";}pia = pia_copy;//复原pia的位置cout << endl;delete [] pia;return 0;}
0 0
- C++ new一个数组时,指针移动程序崩溃问题
- new一个指针数组
- 一个不可思议的程序崩溃问题
- 【c程序】数组与指针
- 数组和指针地址移动问题
- C/C++ new 一个二维数组
- new一个数组引起的问题
- C语言数组指针问题
- 使用[NSMutableDictionary dictionary]程序崩溃问题(野指针)
- new创建指针数组
- 哪位大哥知道怎么用new动态分配一个指针数组?
- C程序一个问题
- 从一个小程序说起-数组指针
- C/C++——new一个二维数组
- 指针变动引起程序崩溃
- C/C++如何返回一个数组/指针
- C语言 复杂指针的申明问题 数组指针 指针数组 函数指针 指针函数
- 数组,指针的移动
- C++ 11 匿名函数Lambda表达式
- fail-fast(快速失败/报错机制)-ConcurrentModificationException
- Ubuntu14.04 下载&&编译 Android 5.1.1源码(采用国内清华大学镜像)
- 设计模式学习--桥接模式
- Faster-RCNN+ZF用自己的数据集训练模型(Python版本)
- C++ new一个数组时,指针移动程序崩溃问题
- 将tomcat源码导入进eclipse
- web 学习笔记2-CSS
- Axure常用快捷键及几种原型工具
- 机器学习之逻辑回归改善模型
- iOS源码解析—AFNetworking(ResponseSerializer)
- B 树
- 鼠标键盘测试程序
- Linux内核启动流程