Тестування, яке нотаток. С++, Qt5.
#include <QCoreApplication>
#include <QCoreApplication>
#include <QDebug>
class class1{
public:
class1(){
qDebug("=== constructor class1");
m_w=10;
qDebug()<<"class1::array size"<<m_w;
m_a= new uchar[m_w];
m_a[0]='Z';
}
void getArray(int &w, uchar *&a)
{
qDebug("=== getArray");
w=m_w;
a=m_a;
}
uchar *getArrayRet(int &w){
qDebug("=== getArrayRet");
w=m_w;
return m_a;
}
void eraseArray()
{
qDebug("=== eraseArray");
delete[]m_a;
m_a=nullptr;
qDebug()<<"eraseArray m_a"<<m_a;
}
void printArray()
{
qDebug("=== printArray inside");
if (m_a) qDebug()<<"class1::getArray2"<<m_a<<*m_a<<(char)m_a[0];
}
private:
uchar *m_a;
int m_w;
};
int main(int argc, char *argv[])
{
uchar *array=nullptr;
int sizearray=0;
class1 *c1=new class1();
c1->getArray(sizearray,array);
qDebug()<<"Array ptr ret"<<array<<sizearray;
if (array) qDebug()<<"array[0]"<<array[0];
c1->printArray();
c1->eraseArray();
array=c1->getArrayRet(sizearray);
qDebug()<<"Array ptr getArrayReturn"<<array<<sizearray;
if (array) qDebug()<<"array[0]"<<array[0];
c1->getArray(sizearray,array);
qDebug()<<"Array ptr getArray"<<array<<sizearray;
if (array) qDebug()<<"array[0]"<<array[0];
QCoreApplication a(argc, argv);
return a.exec();
}
=== constructor class1 class1::array size 10 === getArray Array ptr ret 0x262fc6a1dc0 10 array[0] 90 === printArray inside class1::getArray2 0x262fc6a1dc0 90 Z === eraseArray eraseArray m_a 0x0 === getArrayRet Array ptr getArrayReturn 0x0 10 === getArray Array ptr getArray 0x0 10
Немає коментарів:
Дописати коментар