写了一个bug----使用已经被删除的内存
#include <iostream>
#include <stdio.h>
#include <memory.h> using namespace std;
const int NN = ;
class Piece
{
private:
int r;
int c;
int** p;
public:
Piece()
: r(), c()
{
p = nullptr;
}
Piece(int r, int c, int (*pp)[NN])
{
this->r = r;
this->c = c;
this->p = new int*[r]; for(int i = ; i < r; i++)
{
this->p[i] = new int[c];
memcpy(this->p[i], pp[i], c * sizeof(int));
}
}
~Piece()
{
cout<<"delete"<<endl;
for(int i = ; i < r; i++)
delete[] p[i];
delete this->p;
}
int getR()
{
return this->r;
}
int getC()
{
return this->c;
}
int ** getP()
{
return this->p;
} }; int N;
int r, c;
int m[][];
Piece piece[NN];
int pi = ;
void dump()
{
for(int i = ; i < pi; i++)
{
for(int j = ; j < piece[i].getR(); j++)
{
for(int k = ; k < piece[i].getC(); k++)
{
cout << piece[i].getP()[j][k];
}
cout << endl;
}
cout << endl;
}
}
int main()
{
freopen("d://1.text", "r", stdin);
while (cin >> N && N)
{
memset(m, , sizeof(m));
memset(piece, , sizeof(piece));
int p[NN][NN];
pi = ;
for(int i = ; i <= N; i++)
{
scanf("%d %d", &r, &c);
for(int j = ; j < r; j++)
for(int k = ; k < c; k++)
{
char t;
cin >> t;
if(t == '')
p[j][k] = ;
else
p[j][k] = i;
}
Piece pp(r, c, p);
piece[pi++] = pp;
cout<<"for end"<<endl;
}
}
//dump();
return ; }
输出
for end //循环结束输出
delete //删除pp对象
main end //main函数结束
//下面是5个delete 和 const int NN=5对应
delete
delete
delete
delete
delete
//所以, delete 0 永远都是安全的
//注意前面有个
memset(piece, 0, sizeof(piece));
写了一个bug----使用已经被删除的内存的更多相关文章
- NDK中使用pthread多线程中自己写的一个BUG
在使用pthread进行NDK中的多线程开发时,自己写了一个BUG, void *darkGrayThread(void *args) { ThreadParam *param = (ThreadPa ...
- 写了一个bug,最后却变成了feature,要不要修呢?
事情是这样子的,前不久接到一个需求,为一个游戏开发礼包码功能 通常一款游戏运营期间会搞各种各样的活动吸引玩家,其中最常见的就是发放礼包, 玩家可以通过礼包码兑换礼包. 用礼包码兑换礼包有个一限制,游 ...
- 终于,帮开发写了一个bug
写在文章的开头 最近项目比较紧,尤其前端的的需求比较多,作为一名测试,也会些vue,本着加快项目进度的美好想法,就自告奋勇的向组长承接了一部分开发的任务,其中有个需求需要在我们的广告管理后台新增一个上 ...
- 如何写出一个让人很难发现的bug?
程序员的日常三件事:写bug.改bug.背锅.连程序员都自我调侃道,为什么每天都在加班?因为我的眼里常含bug. 那么如何写出一个让(坑)人(王)很(之)难(王)发现的bug呢? - 1 -新手开发+ ...
- 写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我
写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我 1.HttpUtil工具类,用于模拟用户登录以及爬取网页: using System; using ...
- 浅谈如何写出一个让(坑)人(王)很(之)难(王)发现的bug
该文章内容来自脚本之家,原文链接:https://www.jb51.net/news/598404.html 程序员的日常三件事:写bug.改bug.背锅.连程序员都自我调侃道,为什么每天都在加班?因 ...
- 实现一个最简单的VIM文本编辑器(可能有bug,随便写了一个)
简单的写了一个文本编辑器,功能很简单,但足以把文件IO相关的操作熟悉了,可能功能或者分配的大小还不够完善.请参考参考: #include <stdio.h> #include <co ...
- sqlite在Android上的一个bug:SQLiteCantOpenDatabaseException when nativeExecuteForCursorWindow
更多内容在这里查看 https://ahangchen.gitbooks.io/windy-afternoon/content/ ::-/com.company.product W/System.er ...
- [android开发IDE]adt-bundle-windows-x86的一个bug:无法解析.rs文件--------rs_core.rsh file not found
google的android自带的apps写的是相当牛逼的,将其导入到eclipse中方便我们学习扩展.可惜关于导入的资料太少了,尤其是4.1之后的gallery和camera合二为一了.之前导4.0 ...
随机推荐
- XML 增、删、改
作为一个小型的数据存储传递的工具——XML,大家肯定也不陌生,今天就关于XML的一些简单操作做些总结. 这些都是在控制台进行操作的····· 1.创建XML 1)创建普通XML static void ...
- Docker安装 和简单使用
1.安装依赖 yum install -y yum-utils device-mapper-persistent-data lvm2 2.这一步设置即将安装的是稳定版仓库 yum-config-man ...
- Laravel 输出最后一条sql
$queries = DB::getQueryLog(); $last_query = end($queries); print_r( $last_query);
- JavaScript之图片操作6
上一篇写的关于放大镜的,可能在实际开发中用的不是很多,接下来将的图片无缝滚动在实际工作中就是用的比较多的了. 如上图,通过定时器控制图片无缝滚动,当鼠标悬浮时停止滚动,鼠标离开,滚动继续. 主要原理是 ...
- 文字超长隐藏为...ie7不兼容的解决办法
把li里的a设置display:block; 代码如下: html: <ul> <li><span>2014-8-27</span><a href ...
- 面向对象php 接口 抽象类
1.定义类和实例化对象: 使用关键字class定义类,使用new实例化对象: 2.类成员的添加和访问: 类成员:有属性,方法,常量(常量名不带$符): 访问属性的时候,变量名不带$符 添加属性需要使用 ...
- 查看设备uuid的命令-blkid
查看设备uuid的命令-blkid 在关联/etc/fstab的时候可以使用 [root@mapper ~]# blkid /dev/sda1: UUID="285510be-b19 ...
- 03-IP网际协议
IP I P是T C P / I P协议族中最为核心的协议.所有的 T C P.U D P.I C M P及I G M P数据都以I P数据报格式传输. 不可靠( u n r e l i a b l ...
- 控件之ReleLayout属性
Android:控件布局(相对布局)RelativeLayout RelativeLayout是相对布局控件:以控件之间相对位置或相对父容器位置进行排列. 相对布局常用属性: 子类控件相对子类控件:值 ...
- 后台对象转化成json数据返回给前端
一.介绍 JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json数据 二.下载jar依赖包:可以去这里下 ...