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

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 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考