baidu_38016266 2017-03-24 02:45 采纳率: 0%
浏览 4812

C++调用指针无法读取内存

TextBMFont::TextBMFont():
_labelBMFontRenderer(nullptr),
_fntFileName(""),
_stringValue(""),
_labelBMFontRendererAdaptDirty(true)//无法读取内存
{
}

TextBMFont::~TextBMFont()
{
_labelBMFontRenderer = nullptr;
}

TextBMFont* TextBMFont::create()
{
TextBMFont* widget = new (std::nothrow) TextBMFont();
if (widget && widget->init())
{
widget->autorelease();
return widget;
}
CC_SAFE_DELETE(widget);
return nullptr;
}

TextBMFont* TextBMFont::create(const std::string &text, const std::string &filename)
{
TextBMFont* widget = new (std::nothrow) TextBMFont();
if (widget && widget->init())
{
widget->setFntFile(filename);
widget->setString(text);
widget->autorelease();
return widget;
}
CC_SAFE_DELETE(widget);
return nullptr;
}

void TextBMFont::initRenderer()
{
if (_labelBMFontRenderer) _labelBMFontRenderer = nullptr;
_labelBMFontRenderer = cocos2d::Label::create();
addProtectedChild(_labelBMFontRenderer, LABELBMFONT_RENDERER_Z, -1);
}

void TextBMFont::setFntFile(const std::string& fileName)
{
if (fileName.empty())
{
return;
}
_fntFileName = fileName;
_labelBMFontRenderer->setBMFontFilePath(fileName);

updateContentSizeWithTextureSize(_labelBMFontRenderer->getContentSize());
_labelBMFontRendererAdaptDirty = true;

}

void TextBMFont::setString(const std::string& value)
{
if (value == _labelBMFontRenderer->getString())//这里提示无法读取内存
{
return;
}

  • 写回答

1条回答 默认 最新

  • 小邓在路上 2017-03-24 07:32
    关注

    对指针对象的内容的提领前提是该指针所指向的地址有实际的意义,建议你在使用变量_labelBMFontRenderer之前判断该指针变量是否为空

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题