游戏-cocos2d-x的一个无法读取内存的问题

问题描述

cocos2d-x的一个无法读取内存的问题

想请教一个关于内存的一个象棋游戏游戏内出现的问题,象棋游戏我在做AI的时候,分简单和困难,下面是简单模式AI产生一个步骤的接口(需要传入的是游戏场景指针):
Step* AI::genStep(SceneGameReal* game)
{

Array* allMove = allPossibleMove(game);

int highScore = -100000;//初始化一个最高的走棋得分

Step* ret;

for (int i = 0; i < allMove->count(); i++)

{

Step* step = (Step*)allMove->objectAtIndex(i);

VirtualMove(game, step);

int score = calcScore(game);

if (score > highScore)

{

highScore = score;

ret = step;

}

InFactMove(game, step);

}

return ret;
}

另外一个是困难模式下产生步骤的接口(也是传入游戏场景指针,另外加一个函数操作深度,下面的_step和_level是AI中定义的成员):
Step* AI::genStep(SceneGameReal* game, int level)
{

_step = NULL;

_level = level;

alphaBetaSearch(level, -100000, 100000, game);

return _step;
}

那么问题来了,简单模式下可以正常的运行,但是换成困难模式就出现了无法读取内存了。(显示是this也就是AI的_step 和_level无法读取,但是容易模式又没有问题)

解决方案

http://blog.csdn.net/azhou_hui/article/details/8505792

时间: 2024-10-28 12:55:44

游戏-cocos2d-x的一个无法读取内存的问题的相关文章

php实现读取内存顺序号

 这篇文章主要介绍了php实现读取内存顺序号,十分的简单实用,需要的朋友可以参考下     只是做记录,osc本站应该有重复的 semWrapper.class.php ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 /* * 信号量(Semaphore). * 这是一个包装类,用于解决不同平台下对"信号量"的不同实现方式. * 目前这个类只是象征性的

jna-JNA 读取内存中的指针地址比实际的长

问题描述 JNA 读取内存中的指针地址比实际的长 通过接口得到了一个内存的指针,通过这个指针得到了在读取另一个指针的时候,其地址后面比正确地址多了一段.

微机原理-求问一个计算机组成原理内存访问边界对齐的问题

问题描述 求问一个计算机组成原理内存访问边界对齐的问题 看不懂对于地址Oxff00ff01为什么要先输出高30位,,,还有bank0-3每个保存7位一个字,,但是图上为什么地址04和00都在bank0.,bank0到底是一个怎么样的存储空间,一个地址四个存储空间,那这四个是相当于一个地址对应一行吗,地址加4才读取bank0的D24-D31又是为什么? 如果有OXff0000f3.是不是bank0-3保存d8-15,d16-23,d24-31,d0-7进行两次总线操作?

php实现读取内存顺序号_php实例

只是做记录,osc本站应该有重复的 semWrapper.class.php /* * 信号量(Semaphore). * 这是一个包装类,用于解决不同平台下对"信号量"的不同实现方式. * 目前这个类只是象征性的,在 Windows 平台下实际是空跑(并没有真的实现互斥). */ class SemWrapper { private $hasSemSupport; private $sem; const SEM_KEY = 1; public function __construct

移动App性能测评与优化1.5.2 一个类的内存消耗

1.5.2 一个类的内存消耗 首先,如果我们在代码中要使用一个类,例如以下代码: Foo f = new Foo(); 虚拟机在执行到这步时会做什么呢? 第一步是loadClass操作,将类信息从dex文件加载进内存: 1)读取.dex mmap中class对应的数据. 2)分配native-heap和dalvik-heap内存创建class对象. 3)分配dalvik-LinearAlloc存放class数据. 4)分配dalvik-aux-structure存放class数据. 第二步是ne

XmlReader 读取器读取内存流 MemoryStream 的注意事项

stream|xml MemoryStream对象提供了无需进行IO就可以创建Stream的方法,XmlTextWriter和XmlReader提供快速书写和读取XML内容的方法,结合MemoryStream,就可以直接在内存中构造XmlTextWriter,并用XmlReader进行读取. 使用MemoryStream和XmlTextWriter进行书写XML,需要注意两点:XmlTextWriter.Flush操作和重设MemoryStream.Position = 0. C# <%@ Pa

嵌入式面试题求解:给你一个8M连续内存,如何管理使用

问题描述 嵌入式面试题求解:给你一个8M连续内存,如何管理使用 给你一个8M连续内存,如何实现申请和释放,请考虑所有情况,给出最好的实现. 解决方案 可以参考操作系统原理里面说的分页.分段的方式来使用.不存在最好的实现,要考虑性能和利用率,如果希望利用率大,那么性能必然要影响,反之,如果要高效,就得牺牲一些存储效率. 解决方案二: 可以用全局二位字节数组占用掉,然后采用一定的算法管理这些分配掉的内存块,来实现简单的内存分配管理,参考uCOS-II的实现. 解决方案三: 双向链表控制 设置最小si

sqlite数据库-请问怎么用sqlite读取内存中的数据库?

问题描述 请问怎么用sqlite读取内存中的数据库? 我想把sqlite数据库包含到c#项目中,然后用的时候只读,,请问怎么用sqlite读取内存中的数据库? 解决方案 内存中数据库是什么?memcache?直接有库访问 解决方案二: 在程序启动的时候读取到List<实体>里面,以后直接用linq去查询集合. 解决方案三: System.Data.SQLite.dll就是用来操作SQLite的

c++-C++ 处理图片像素时无法读取内存

问题描述 C++ 处理图片像素时无法读取内存 //bmps 中装的是CImage for(int i = 0; i < bmps[nIndex].GetHeight(); i++){ for(int j = 0; j < bmps[nIndex].GetWidth();j++){ BYTE * tp1=(BYTE*)bmps[nIndex].GetPixelAddress(i,j); BYTE * tp2=(BYTE*)bmps[nIndex+1].GetPixelAddress(i,j);