<div class="bar bar-header bar-stable">
<a href="javascript:history.back(-1);" class="button button-icon icon ion-ios-arrow-left"></a>
<button class="button button-clear button-positive">Log out</button>
</div>
<div class="clearfix"></div>
<ion-side-menus>
<!-- Center content -->
<ion-side-menu-content style="padding-top: 45px">
<ion-nav-view name="categories"></ion-nav-view>
<ion-nav-view name="products"></ion-nav-view>
<ion-nav-view name="payments"></ion-nav-view>
</ion-side-menu-content>
<!-- Left menu -->
<ion-side-menu expose-aside-when="large" style="padding-top: 45px">
<ion-view>
<ion-content>
<ul class="list has-header" id="itemLists">
</ul>
</ion-content>
</ion-view>
<div class="bar bar-subfooter auto-height" style="padding:0">
<ul class="list">
<li class="item">Total <span class="pull-right" id="total"></span></li>
</ul>
</div>
<div class="bar bar-footer">
<div class="text-center">
<div class="bar bar-footer bar-positive">
<a href="#/main/payments" class="no-underline"><div class="title">Pay</div></a>
</div>
</div>
</div>
</ion-side-menu>
</ion-side-menus>
我基本上想用writeToAnalytics( - )替换printm((---),它将数据写入文件。
我收到以下代码的Segmentation Fault。 问题是在main中调用abc :: func()。是因为func()中的str的本地存储?
答案 0 :(得分:2)
func
函数不正确,因为它返回了无效指针:
static const char * func()
{
std::string str = "john";
return str.c_str();
}
string
在函数末尾被销毁,因此指针str.c_str()
是一个悬空指针 - 指向一个不再存在的字符串。
解决方案只是return "john"
。文学永远存在。
static const char * func()
{
return "john";
}
或者,更好的是,只需返回string
,
static string func()
{
std::string str = "john";
return str;
}
并在呼叫站点使用abc::func().c_str()
。
(可能还有其他问题,但这对我来说最明显)