为什么方法返回的 string 对象为空?
string getDate(){
int t_iYear = 2013;
int t_iMonth = 11;
int t_iDay = 23;
int t_iHour = 16;
int t_iMin = 45;
string t_oStrTarget;
char* pBuf = (char*)malloc(kMaxStrLen);
if (pBuf) {
sprintf(pBuf, "%d-%d-%d %d:%d", t_iYear, t_iMonth, t_iDay, t_iHour, t_iMin);
t_oStrTarget = string(pBuf);
free(pBuf);
}
return t_oStrTarget;
}
string getDate(){
int t_iYear = 2013;
int t_iMonth = 11;
int t_iDay = 23;
int t_iHour = 16;
int t_iMin = 45;
string t_oStrTarget;
char* pBuf = (char*)malloc(kMaxStrLen);
if (pBuf) {
sprintf(pBuf, "%d-%d-%d %d:%d", t_iYear, t_iMonth, t_iDay, t_iHour, t_iMin);
t_oStrTarget = pBuf;
free(pBuf);
}
return t_oStrTarget;
}
string getDate(){
int t_iYear = 2013;
int t_iMonth = 11;
int t_iDay = 23;
int t_iHour = 16;
int t_iMin = 45;
string t_oStrTarget;
char* pBuf = (char*)malloc(kMaxStrLen);
if (pBuf) {
sprintf(pBuf, "%d-%d-%d %d:%d", t_iYear, t_iMonth, t_iDay, t_iHour, t_iMin);
t_oStrTarget.append(string(pBuf));
free(pBuf);
}
return t_oStrTarget;
}
为什么返回的 string 对象都是空的? std?string
[解决办法]
跟踪一下,看看进if条件了没有
[解决办法]
全都正常呀,大兄弟
在vs2010中
[解决办法]
代码写的不错,规范,看着舒服,就是有点四不像,可以用std::stringstream
[解决办法]
已经知道最大多长了,没有必要再动态分配内存。直接定义一个足够大的buffer,这样代码看起来会更整洁。而且可以消除构造的临时std::string对象。
char sz[20];
sprintf(sz, "%d-%d-%d %d:%d", t_iYear, t_iMonth, t_iDay, t_iHour, t_iMin);
return sz;