我们在程序运行的过程中,经常出现段错误、内存持续增大等,是C++显式内存管理存在的问题,主要归纳为以下几点:野指针:一些内存单元已经释放,但之前指向它的指针还在使用。重复释放:程序试图释放已经被释放过的内存单元。内存泄漏:没有释放不再使用的内存单元。缓冲区溢出:数组越界。不配对的new[]/dele...
分类:
编程语言 时间:
2014-11-28 20:02:28
阅读次数:
308
【扩展知识4】
1. 野指针
2. %p的使用
( 1 )野指针
定义:野指针”不是NULL指针,是指向“垃圾”内存的指针。[重量级危险人物]
野指针的成因:
1. 指针变量定义时没有初始化。
2. 指针变量free后没有置于NULL。
3. 指针的使用超出范围
程序举例:...
分类:
其他好文 时间:
2014-11-22 12:08:58
阅读次数:
165
在上一节中实现了走棋规则,这节中将实现悔棋
首先看一下悔棋的效果:
通过观察上图中的演示可知,当单击悔棋按钮后,移动了的棋子会回到原来的位置上,
实现方式:
首先在SceneGame类中定义一个成员变量CCArray* _steps,用于保存每步棋的棋子信息
//保存每步走的棋子
CCArray* _steps;
在SceneGame类中的成员函数init...
分类:
其他好文 时间:
2014-11-21 21:55:44
阅读次数:
325
浅拷贝浅拷贝就是对内存地址的复制,让目标对象指针和源对象指向同一片内存空间。如:char*str=(char*)malloc(100);char*str2=str;浅拷贝只是对对象的简单拷贝,让几个对象共用一片内存,当内存销毁的时候,指向这片内存的几个指针需要重新定义才可以使用,要不然会成为野指针..
分类:
其他好文 时间:
2014-11-17 12:35:49
阅读次数:
212
??
Cocos2dx3.2以后使用Vector代替了CCArray。案例如下:
头文件:T02Vector.h
#ifndef
__T02Vector_H__
#define
__T02Vector_H__
#include
"T32.h"
class
T02V...
分类:
其他好文 时间:
2014-11-17 00:32:12
阅读次数:
306
1.cocos2dx中提供了三种基本的数据类型:CCString(字符串),CCArray(数组),CCDictionary(数据字典(哈希的功能))2.CCString的用法class CCString : public CCObject,可见CCString本质是一个CCObject,因此支持c...
分类:
其他好文 时间:
2014-11-14 14:09:05
阅读次数:
1050
void Cms::showMonster(CCArray* monsterArray,int type)
{
static int posN=0;
for(int i=0;icount();i++)
{
auto monsterSprite=(CCSprite*)monsterArray->objectAtIndex(i);
...
分类:
编程语言 时间:
2014-11-02 08:12:10
阅读次数:
131
??
数据本地化
A CCUserDefault
系统会在默认路径cocos2d-x-2.2.3\projects\Hello\proj.win32\Debug.win32下生成一个名为UserDefault.xml.所有的key皆为char
*型,value类型为bool intfloat double std::string.
读操作
...
分类:
其他好文 时间:
2014-10-30 20:58:41
阅读次数:
390
Hightlight1.1 自我理解的指针概念1.2 如果用不同类型的数据来赋值指针1.3 野指针1.4 悬空指针1.5 地址(指针)作为参数1.6 数组作为形参1.7 常量指针和指针常量1.8 举例: 排序一组数据 数据都是const类型 不能改变数据的情况下排序1.9 主方法参...
分类:
其他好文 时间:
2014-10-23 08:08:01
阅读次数:
235
1 C++内存管理
A
栈上的空间
自生自灭,不用管理
B
堆上的空间
手动new,手动delete,否则产生内存泄漏
2
内存管理的难处
管理原则,谁申请谁释放
...
分类:
其他好文 时间:
2014-10-23 00:03:14
阅读次数:
264