QStringをchar*に変換する方法
2637 ワード
Qtヘルプドキュメントのdemo
他の文章にもいくつかの方法が示されている.
上のコードはさらに最適化できます
ps:
newの後memsetといえば、より簡単な方法で実現することができます.
それは
QString tmp = "test";
QByteArray text = tmp.toLocal8Bit();
char * pCh = new char[text.size()+1];
strcpy(pCh, text.data());
delete [] data;
他の文章にもいくつかの方法が示されている.
char *chStr = NULL;
QByteArray ba = str.toLatin1();
chStr = (char *)malloc(ba.length() + 1);
memset(chStr, 0, ba.length());
memcpy(chStr, ba.data(), ba.length());
chStr[ba.length()] = '\0';
上のコードはさらに最適化できます
char *chStr = NULL;
QByteArray ba = str.toLatin1();
chStr = (char *)malloc(ba.length() + 1);
memset(chStr, 0, ba.length() + 1); // memset , memset, 。 ~
memcpy(chStr, ba.data(), ba.length() + 1);// ba.data() ‘\0’,
ps:
newの後memsetといえば、より簡単な方法で実現することができます.
char *p = new char[10]();
それは
char *p = new char[10];
memset(p, 0, 10);