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

时间:2014-01-23 02:25:51   收藏:0   阅读:462

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机器上)

}

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

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!