c++ - QString 到 char* 的转换

标签 c++ qt qstring qtcore

我试图通过以下方法将 QString 转换为 char* 类型,但它们似乎不起作用。

//QLineEdit *line=new QLineEdit();{just to describe what is line here}

QString temp=line->text();
char *str=(char *)malloc(10);
QByteArray ba=temp.toLatin1();
strcpy(str,ba.data());

您能否详细说明这种方法可能存在的缺陷,或者提供一种替代方法?

最佳答案

好吧,Qt FAQ说:

int main(int argc, char **argv)
{
 QApplication app(argc, argv);
  QString str1 = "Test";
  QByteArray ba = str1.toLocal8Bit();
  const char *c_str2 = ba.data();
  printf("str2: %s", c_str2);
  return app.exec();
}

所以也许您还有其他问题。这到底是怎么回事?

关于c++ - QString 到 char* 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2523765/

相关文章:

c++ - 使用返回类型作为派生类的指针

c++ - 可以使用 cmake 解决对符号的 undefined reference

c++ - “to_string”是't a member of “std”吗?

c++ - Qt4 C++ : QString variable usage from multiple threads crashes

c++ - 精确到 Qstring 的数字

c++ - 在 QString 中查找数字

c++ - 如何找出我的 .exe 的入口函数?

c++ - 无法追踪 Qt 程序崩溃的原因

python - 删除 QGraphicsItem 的父项

qt - QSettings 和包含空格的部分