1、背景:今天有QString的变量,将QString的值传递给void func(char * ptr),于是就有了类似下面这一段离谱的代码
当时我还在想为什么var的值为空了,为什么呢。
2、原因:就是因为右边函数返回的是一个临时指针对象,给到了右边,(来至vs提示)
可能原因有问题。
3、能解决问题的办法如下
1、
char buf[256]={'\0'};
snprintf(buf,256,"%s",str.toStdString().data());
2、
std::string stdStr=str.toStdString();
char * tmp=const_cast<char*>(stdStr.data());