QByteArray转char的结果错误

QByteArray str3="00 10 10 00 00 01 02 03 20";
unsigned char buff[9];
memcpy( &buff, str3,2*sizeof(str3));
为什么QByteArray转char的结果为buff= 0x253bfbf908

你应该用QByteArray::data()来返回QByteArray内部的字符数组指针。

#include <QtCore/QByteArray>

int main() {
  QByteArray str = "00 10 10 00 00 01 02 03 20";
  char buff[100];
  memcpy(buff, str.data(), strlen(str.data()));
  printf("%s\n", buff);
  return 0;
}

不能这么搞吧,QByteArray是个动态数组,又不是普通数组