我遇到了一个非常奇怪的运行时错误: 我有以下课程
class Application {
public:
Application(){}
Application(Window* w)
:window(w)
{};
static std::string const& getDataStorageDirectory(){
return dataStorageDir;
}
static std::string dataStorageDir;
Window* window;
};
在Application.cpp中我初始化它:
std::string Application::dataStorageDir="asd";
现在,我在"标准"中使用opengles / ndk。方式(自己的Activity和自己的GLSurfaceView.Renderer(它正在运行另一个线程)。
现在如果我在我的代码中使用:
LOGI("data storage: %s", Application::dataStorageDir.c_str());
然后它很好用,但如果我使用:
std::string p = Application::getDataStorageDirectory();
LOGI("data storage (renderer): %s", p.c_str());
然后它以SIGSEGV
可能导致此问题的原因是什么?