首页 > 编程语言 > 详细

C++ 一个关于返回参数的问题

时间:2014-01-23 02:25:51      阅读:457      评论:0      收藏:0      [点我收藏+]

C++ 中有一些很恶心的细节:

const chargetTempStr()

{

  std::string s = "1234567";

      return s.c_str();

}

这个函数中s 作为一个临时变量当结束了函数的话,会释放这个栈所以。。。。在main函数中sql指针指向一个乱的地址;

int main(int argc, const char * argv[])

{

  const char* sql = getTempStr();

     std::cout <<sql;

}

 

类似的我在项目中遇到的:

std::string getTempStr()

{

    std::string tempStr = "";

    char sql[234] = {0};

    sprintf(sql,"UPDATE "MAPDATA_INFO_TABLE" set "MAPDATA_SCORE"=%d,"MAPDATA_STAR"=%d where "MAPDATA_POS"=%d",1,1,1");

    tempStr = sql;

    return tempStr;

}

 

int main(int argc, const char * argv[])

{

 

  方法1:

   std::string temp = getTempStr();

  const char* sql = temp.c_str();

  GSQLITE3->exec(sql,NULL);

  方法2:

  GSQLITE3->exec(getTempStr().c_str(),NULL);  //这条语句会出错。(在android机器上)

}

C++ 一个关于返回参数的问题

原文:http://www.cnblogs.com/ziqiongbuxi/p/3530162.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!