当前位置: 代码迷 >> QT开发 >> char *变量给另一个char *变量赋值有关问题
  详细解决方案

char *变量给另一个char *变量赋值有关问题

热度:594   发布时间:2016-04-25 05:14:26.0
char *变量给另一个char *变量赋值问题
//decode_buff为char *类型一副图片的的数据 ,decode_len为int型为这数据的长度
  QByteArray byte(decode_buff,decode_len);
  QPixmap pixmap;
  pixmap.loadFromData(byte);
  qDebug()<<"======pixmap.loadFromData(byte)==="<<pixmap.loadFromData(byte);
  //返回true,表明这是一个图片数据块,可以显示在控件上


  //把decode_buff的值赋值给picData
  char *picData;
  // picData=new char[decode_len];
  // picData=(char *)malloc(sizeof(char)*decode_len);
  picData=(char *)malloc(decode_len);
  // picData=decode_buff;
  strcpy(picData,decode_buff);
  picData[decode_len] = '\0';
  picDataLength=decode_len;


  QByteArray byteArray(picData,picDataLength);
  QPixmap pixMap;
  pixMap.loadFromData(byteArray);
  qDebug()<<"======pixMap.loadFromData(byteArray)==="<<pixMap.loadFromData(byteArray);
  //把decode_buff赋值给picData之后,loadFromData返回的是false,为什么???
  //我的赋值有没有问题?

------解决方案--------------------
不能用 strcpy 改成 memcpy,要问为什么,自己看函数介绍
------解决方案--------------------
strcpy碰到'\0'就结束了,碰不到就不结束,换memcpy,或者memmove
  相关解决方案