我想从函数返回一个C字符串。该函数假设用逗号分解3个整数,然后将结果作为char数组返回,但是我得到的是垃圾值。我假设我没有正确调用malloc。有人可以就这个问题提出建议吗?如何使用malloc从函数返回C字符串
using namespace std;
const char * createCommand(int p1, int p2, int p3){
stringstream sstm;
std::string comma = ",";
sstm << p1 << comma << p2 << comma << p3;
std::string str = sstm.str();
const char *cstr = (const char *)malloc((str.length()+1) * sizeof (char));
cstr = str.c_str();
return cstr;
}
int main() {
const char *cstr2 = createCommand(1,0,250); //I want to return "1,0,250"
printf("char = %s\n",cstr2);
}
你在这里漏了很多。 –
您有*具有*返回c字符串的具体原因吗?除非你有很好的理由,否则你绝对不应该在C++中编写这样的代码。 – Xirema
在C++中,您应该使用'new'而不是'malloc'来动态分配内存。 – Barmar