有些
问题向大家请教,先看第一段程序:
#include <QtCore/QCoreApplication>
#include <QFile>
#include <QDebug>
#include <string.h>
#include <iostream>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString tmp = "55aa";
QByteArray text = tmp.toLocal8Bit();
char *data = new char[text.size() + 1];
strcpy(data, text.data());
//qDebug()<<text.toHex()<<'t';
int i=0;
while (i<4) {
qDebug()<<*data;
i++;
data++;
}
return a.exec();
}
我可以在调试的时候看到"55aa"的
存储位置,如图所示:
但是,换做如下代码:
#include <QtCore/QCoreApplication>
#include <QFile>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QByteArray org,org1; //读取原始
数据 QFile file("D:/data/000000001.dat");
file.open(QIODevice::ReadOnly);
org = file.readAll();
org1 = org.left(0x06);
char *pDATA = new char[org1.size() + 1];
strcpy(pDATA, org1.data());
qDebug()<<org1.toHex()<<org1.size();
return a.exec();
}
按理说和上面的代码一样pDATA的地址应该是存放org1中的数据,但是我在地址中却发现存放的不是这个数据。
控制台输出截图:

pDATA的地址存储的数据应该是:"0004050555aa"才对啊。可是我调试的时候看到如下情况:

存储的值不一样。
最后我把我所读取的文件数据用附件形式传上来了,我的最终目的是想找到:到底这个程序的org,org1,*pDATA都存放在内存的哪个位置,我搞了好几天,实在是不懂,请论坛上的牛人帮帮忙吧,谢谢了先。
数据的截图:我用ultraEdit打开的~一共就16个Byte。
000000001.zip (1 K) 下载次数:1